语音和统一通信 : Cisco Unity

Cisco Unity故障切换的SQL server复制

2016 年 10 月 24 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈


目录


简介

当故障切换配置时, Cisco Unity使用Microsoft SQL Server 2000年复制复制从活动服务器的数据到非激活服务器。如果故障切换发生,数据复制保证当前配置和用户数据是可用的在辅助服务器,并且,在Failback以后,在第二做的变动,当是活跃的时复制回到主要的。复制由SQL server复制工作进行,由SQLSERVERAGENT服务负责。

当SQL server复制中断时,复制处理在活动服务器的审计日志表里保存,因此数据可以复制到非激活服务器,当复制恢复时。如果复制作为扩展周期是残破的,审计日志表能变得大。这能导致性能下降,反过来导致恶劣的TUI答复,并且能发生的均等原因故障切换。而且,当变为活动服务器时,在非激活服务器的Cisco Unity数据库没有新配置和用户数据。

先决条件

要求

确保您完成Cisco Unity故障切换的需求,在您配置Cisco Unity故障切换前。

使用的组件

本文档中的信息根据Cisco Unity 4.0(3)通过5.x。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

箴言报复制

SQL复制失败的原因

复制可以发生故障,如果SQLSERVERAGENT服务不能开始并且/或者,如果服务运行失败开始的复制工作。这些失败能发生,当SQL server重新启动(例如时,当Cisco Unity服务器重新启动)时由于计时问题、补丁程序或者安全或计算机策略的应用程序。

请使用事件日志监控SQLSERVERAGENT服务

如果SQLSERVERAGENT服务不能开始,事件登陆系统事件日志。例如:

Event Type:	Error
Event Source:	Service Control Manager
Event Category:	None
Event ID:		7001
Date:		5/4/2007
Time:		10:58:47 PM
User:		N/A
Computer:		<servername>
Description:
The SQLSERVERAGENT service depends on the MSSQLSERVER service 
which failed to start because of the following error: 
The account name is invalid or does not exist, or the password 
is invalid for the account name specified. 

另外, Cisco Unity检测问题并且记录在应用事件日志的此事件。推荐您创建根据此事件或传呼通知的电子邮件使用所有监控服务。例如, Cisco Unity事件监控服务

Event Type:	Warning
Event Source:	CiscoUnity_NodeMgr
Event Category:	Run 
Event ID:		1006
Date:		1/1/2007
Time:		9:00:00 AM
User:		N/A
Computer:		<servername> 
Description:
The SQL Server Agent service is not running. It must be running 
in order for replication to take place. 

请使用事件日志监控复制乔布斯

当SQLSERVERAGENT服务运行失败开始,默认情况下的工作,没有事件登陆事件日志。Cisco推荐您:

当复制工作不能开始时,请配置SQL server记录事件

完成这些步骤:

  1. 开始SQL server企业管理器。

  2. 在企业管理器中左窗格,请展开Microsoft SQL服务器> SQL server组> (本地) (Windows NT) > Management> SQL server代理程序,并且点击乔布斯

  3. 在右窗格中,请用鼠标右键单击工作的名称并且选择属性>通知

    参见表1关于SQLSERVERAGENT服务开始的复制工作的列表。

  4. 在<job> Properties对话框中,请去通知选项卡。

  5. 检查写入到Windows应用事件日志复选框。

  6. 点击OK键关闭<job> Properties对话框。

  7. 重复您要记录事件工作的其余的步骤3至6。

表1 —复制SQLSERVERAGENT服务开始的乔布斯

复制工作 说明 类别
有重新初始化的订阅数据验证失败。 重初始化有数据验证失败的所有订阅。 REPL警报答复
复制代理程序核对 检测积极地不记录历史记录的复制代理程序。 REPL-Checkup
SVRNAME-UnityDb-UnityDbPublication-SVRNAME-3 Unitydb分配 REPL分布
分配整理:UnityDistributionDb removes复制从分配数据库的处理。 REPL分布清理
代理程序历史记录整理:UnityDistributionDb 从分配数据库取消复制代理程序历史记录。 REPL历史清理
SVRNAME-UnityDb-3 UnityDb LogReader REPL-LogReader
[SVRNAME].9 更新订阅的Queued的读取队列。 REPL-QueueReader
SVRNAME-UnityDb-UnityDbPublication-3 Unitydb快照 REPL快照
已到期订阅整理 从已发布数据库检测并且删除已到期订阅。 REPL-Subscription清理

请使用SQL server企业管理器监控SQLSERVERAGENT复制乔布斯

请使用企业管理器确定复制乔布斯是否成功

完成这些步骤:

  1. 在主服务器上,请开始SQL server企业管理器。

  2. 在企业管理器中左窗格,请展开Microsoft SQL服务器> SQL server组> (本地) (Windows NT) > Management> SQL server代理程序并且点击乔布斯

  3. 在右窗格中,每工作有指示其成功或失败的一个图标。与红点图标的所有工作失败。发生故障的任何工作,如果Status (状态)列的值是:

    • 执行— red-doc图标未更新以最终状态。请等待,直到图标更新。

    • 对于其他值,请用鼠标右键单击在任务名称,并且点击视图作业历史记录为了显示的原因失败的工作。

确定等待复制处理是否处理

在复制中断期间,复制处理能累计,直到比能处理有更多,当系统处理正常呼叫音量时。(此的最普通的示例是ODBC超时,当主要的和附属Cisco Unity服务器尝试连接对互相。)时在中断以后,当您允许复制工作运作在相对缓慢的时光(例如在晚上或在一周末)时,复制工作能经常清楚非重复处理积压。然而,如果有很多非重复处理,由SQL server的尝试复制数据能导致超时。如果复制作用,但是非重复处理数量未在一周末以前显著丢弃,您也许需要禁用然后重新启用复制。请参阅禁用并且重新启用本文的复制部分欲知更多信息。

请使用OSQL in命令此部分确定非重复处理数量是否在中断以后是非常地大,并且最旧的处理是否处理。(为有很大数量的Cisco Unity用户和很多活动的一个系统,在百排列的处理可以普通。在千位排列的处理是令人担心的事。)

警告 警告: 如果非重复处理数量非常大, OSQL命令在服务器也许需要很长时间完成和放置严重的额外的开销。

完成这些步骤为了显示日期的排好序的列表在待定复制记录的,您能使用确定多么旧有最旧的处理是:

  1. 在辅助服务器上,请选择Start > Run

  2. 运行cmd

  3. 在prompt命令,请运行此命令为了开始OSQL和查询Unitydb数据库:

    注意: 此命令包裹到第二条线路由于空间的原因。

    OSQL -E -d Unitydb -Q "SELECT distinct insertdate 
    FROM MSreplication_queue ORDER BY insertdate"
    

注意: OSQL交换机区分大小写(例如, - E)。

完成这些步骤为了得到一总数待定复制记录。您能运行每天这些的记录确定非重复处理数量是否增长或收缩:

  1. 在辅助服务器上,请选择Start > Run

  2. 运行cmd

  3. 在prompt命令,请运行此命令为了开始OSQL和查询Unitydb数据库:

    OSQL -E -d Unitydb -Q "SELECT count(*) FROM MSreplication_queue"
    

    注意: OSQL交换机区分大小写(例如, - E)。

完成这些步骤为了确定从主服务器的数据是否复制到辅助服务器:

  1. 在主服务器上,请选择Start > Run

  2. 运行cmd

  3. 在prompt命令,请运行此命令为了开始OSQL和查询UnityDistributionDb数据库:

    注意: 此命令包裹到第二条线路由于空间的原因。

    OSQL -E -d UnityDistributionDb -Q "SELECT SUM(UndelivCmdsInDistDB) 
    FROM MSdistribution_status"
    

重新启动复制乔布斯

通常,如果SQLSERVERAGENT服务或那个复制工作不能开始,它归结于计时问题在启动期间。您能通常恢复复制,当您开始失败开始的所有工作时。

失败开始的启动复制乔布斯

完成这些步骤:

  1. 开始SQL server企业管理器。

  2. 在企业管理器中左窗格,请展开Microsoft SQL服务器> SQL server组> (本地) (Windows NT) > Management> SQL server代理程序并且点击乔布斯

  3. 用鼠标右键单击失败开始的工作并且点击启动工作

  4. 如果Status (状态)列的值不更改对执行,请查看作业历史记录。用鼠标右键单击工作,并且点击视图作业历史记录。当更正时失败的原因,请重复步骤3为了开始工作。

禁用并且重新启用复制

如果非重复处理数量很大复制工作重复计时,并且,如果这防止复制重大减少非重复记录数量,必须禁用然后重新启用复制。完成这三个步骤为了完成此:

  1. 禁用自动故障切换,并且终止文件和SQL复制

  2. 配置在主服务器的故障切换

  3. 配置在辅助服务器的故障切换

警告 警告: 如果禁用并且重新启用复制,非重复处理(若有)在主要的和辅助服务器删除,并且在主服务器的Cisco Unity数据库复制到辅助服务器。如果有所有非重复在辅助服务器更改,那些更改丢失。

禁用自动故障切换和终止文件和SQL复制

完成这些步骤:

  1. 如果主服务器是活跃的,请继续对步骤5。

    如果主服务器不是活跃的,在辅助服务器请选择Start > Programs > Cisco Unity >故障切换监控程序

  2. 点击Failback

  3. 点击OK键确认您要失效回到主服务器。

  4. 结束故障切换监控程序。

  5. 在主服务器上,在Windows Start菜单,请选择Programs> Cisco Unity >故障切换监控程序

  6. 单击 Advanced

  7. 检查禁用自动故障切换和故障回退复选框。

  8. 点击OK键并且结束故障切换监控程序。

  9. 在主服务器上,在Windows Start菜单,请选择Programs > Administrative Tools > Services

  10. 在右窗格中,请双击AvCsNodeMgr

  11. 在“常规”选项卡上,单击停止

  12. 在Startup Type列表,请点击已禁用

  13. 单击 Ok

  14. 关上Services窗口。

    警告 警告: 由于节点管理器服务禁用,文件复制终止。当正常故障切换操作恢复时,复制重新启用。

  15. 在辅助服务器上,在Windows Start菜单,请选择Programs > Administrative Tools > Services

  16. 在右窗格中,请双击AvCsNodeMgr

  17. 在“常规”选项卡上,单击停止

  18. 在Startup Type列表,请点击已禁用

  19. 单击 Ok

  20. 关上Services窗口。

  21. 在主服务器上,在Windows Start菜单,请选择Programs > Microsoft SQL Server > Enterprise Manager

  22. 在控制台根窗口的左窗格中,请浏览对主服务器的复制节点。一般,节点是三个级别在Microsoft SQL服务器节点下。

  23. 用鼠标右键单击复制节点,并且点击禁用发布。禁用发布和分配向导出现。

  24. 在欢迎使用页,其次请单击。

  25. 在发布页的禁用,请点击,然后其次单击。

  26. 在确认丢弃发行页,其次请单击。

  27. 在完成的页,请点击芬通社

  28. 当进程完成时,请点击OK键。

  29. 关上控制台根窗口。

  30. 退出企业管理器。

配置在主服务器的故障切换

完成这些步骤:

  1. 在Windows Explorer,请浏览对CommServer目录。

  2. 启动配置Cisco Unity故障切换向导的双击FailoverConfig.exe

  3. 在欢迎使用页,其次请单击。

  4. 在指定服务器角色页,请点击主服务器,并且其次单击。

  5. 在回车您的服务器页名称,单击浏览,选择辅助服务器的名称,并且点击OK键。辅助服务器的IP地址自动地填写。

  6. 单击 Next

  7. 在回车故障切换帐户信息页,请单击浏览,并且双击消息存储服务帐户的名称。这是Failover服务注册的帐户。

    您选择的帐户必须有权利操作作为操作系统一部分和登录作为服务,并且必须是本地管理员组的成员。

    警告 警告: 您必须指定在主要的和辅助服务器的同一个帐户。

  8. 在密码字段,请输入Failover服务注册和的帐户的密码,并且其次单击。

  9. 在配置您的服务器页的开始,请单击配置。向导验证设置并且配置在主服务器的故障切换。

    如果向导不顺利地停止配置,错误消息解释向导为什么失败。退出向导,更正问题,并且单击再配置

  10. 在完成的页,请点击芬通社

配置在辅助服务器的故障切换

完成这些步骤:

  1. 在Windows任务栏,请双击系统时钟。日期/时间Properties对话框出现。

  2. 设置时刻为小时和分钟和显示一样在主服务器,并且点击OK键。

  3. 在Windows Explorer,请浏览对CommServer目录

  4. 启动配置Cisco Unity故障切换向导的双击FailoverConfig.exe

  5. 在欢迎使用页,其次请单击。

  6. 在指定服务器角色页,请点击辅助服务器,并且其次单击。

  7. 在回车您的服务器页名称,单击浏览,选择主服务器的名称,并且点击OK键。主服务器的IP地址自动地填写。

  8. 单击 Next

  9. 在回车故障切换帐户信息页,请单击浏览,并且双击消息存储服务帐户的名称。这是Failover服务注册的帐户。

    您选择的帐户必须有权利操作作为操作系统一部分和登录作为服务,并且必须是本地管理员组的成员。

    警告 警告: 您必须指定在主要的和辅助服务器的同一个帐户。

  10. 在密码字段,请输入Failover服务注册和的帐户的密码并且其次单击。

  11. 在配置您的服务器页的开始,请单击配置。向导验证设置并且配置在辅助服务器的故障切换。

    如果向导不顺利地停止配置,错误消息解释向导为什么失败。退出向导,更正问题,并且单击再配置

  12. 在完成的页,请点击芬通社

Unity故障切换问题

问题:接收SQL复制错误每10-15分钟

在事件查看器中,此错误消息接收:

Event Type:	Warning
Event Source:	CiscoUnity_NodeMgr
Event Category:	Run 
Event ID:	1014
Date:		6/25/2010
Time:		12:32:37 PM
User:		N/A
Computer:	AXLDUM01
Description:
Error getting status of SQL Server replication between the primary and 
secondary machines. Unable to get status of SQL Server subscription to 
publication UnityDbPublication for AXLDUM02. Error = 0x80045510.  This may 
be a temporary condition. If not, recreate the subscription and the 
publication snapshot to restore replication.

解决方案

执行这些步骤解决此问题:

  1. 在主服务器的Windows Start菜单,请去Programs > Microsoft SQL Server > Enterprise Manager

  2. 在左边窗格中,请展开Microsoft SQL服务器> SQL server组

  3. 在左边窗格中,在SQL server组下,请点击<servername>

  4. 在SQL server企业管理器工具菜单,请点击复制>禁用发布和分配

  5. 在欢迎到禁用发布和分配向导窗口,其次请单击。

  6. 在发布对话框的禁用,请点击是,禁用发布在<servername>,并且其次单击。然后,请执行出现在屏幕上为了禁用发布在主服务器的步骤。

  7. 重新运行主服务器的Cisco Unity故障切换配置向导。

    注意: 请务必使用正确Cisco Unity帐户(Unity安装)运行FCW。

  8. 去在主服务器的Programs> Microsoft SQL Server > Client Network Utility

  9. 常规选项卡下,请确认由命令的已启用协议TCP/IP和命名管道如显示此处:

    http://www.cisco.com/c/dam/en/us/support/docs/unified-communications/unity/91961-sql-svr-rep-cu-failover-01.gif

  10. 别名选项卡下,请单击添加,设置附属Unity服务器的机器名字到服务器别名,并且点击OK键。

    http://www.cisco.com/c/dam/en/us/support/docs/unified-communications/unity/91961-sql-svr-rep-cu-failover-02.gif

    http://www.cisco.com/c/dam/en/us/support/docs/unified-communications/unity/91961-sql-svr-rep-cu-failover-03.gif

  11. 同样地,请执行从8的步骤到10辅助服务器的。此处在别名选项卡下的辅助服务器,请单击添加并且设置主要的Unity服务器名称作为服务器别名,并且点击OK键。

  12. 重新运行辅助服务器的Cisco Unity故障切换配置向导。

更改认为拥有复制乔布斯

默认情况下, Windows域帐户拥有复制工作。这通过介绍从属关系添加若干复杂性在Windows验证和在网络通信。SQL server有不是Windows域帐户并且对SQL server是唯一的两个内置的帐户。为了使从属关系降低,复制工作的更改所有权到这些SQL server帐户之一:

  • sa帐户是内置的SQL server管理帐户。此帐户有高层次访问。

  • 当复制配置时, distributor_admin帐户创建。此帐户比sa帐户有访问更低级的。

更改拥有复制乔布斯的帐户

完成这些步骤:

  1. 开始SQL server企业管理器。

  2. 在企业管理器中左窗格,请展开Microsoft SQL服务器> SQL server组> (本地) (Windows NT) > Management> SQL server代理程序,并且点击乔布斯

  3. 对于在列出的第一复制工作1,请用鼠标右键单击在工作,并且点击属性

  4. 在常规选项卡,在所有者列表,请点击您希望拥有工作帐户的名称。思科建议您选择distributor_admin帐户。

  5. 点击OK键关闭<job> Properties对话框。

  6. 重复工作的其余的步骤3至5在表1。

  7. 重新启动所有复制工作:

    1. 对于在列出的第一复制工作1,请用鼠标右键单击工作并且点击终止工作

    2. 用鼠标右键单击工作并且点击启动工作

    3. 重复工作的其余的步骤a和b在表1。

复制监听的进一步改进

与监听SQL server复制工作的一个未清问题是一些工作一次只开始,当SQL server和SQLSERVERAGENT服务开始时。结果,如果工作发生故障,他们只造成一个事件被记录。(其他复制工作开始,终止“去休眠”,然后重新启动。这些工作记录错误,每次他们不能开始。)

为了连续请监控一次只开始工作的状况, Cisco Unity工程组添加复制工作监听到SQLSERVERAGENT服务的现有监听,如描述前在本文。此改进跟踪与Cisco Bug ID CSCsi50517 (仅限注册用户)。

SQLSERVERAGENT :208 :SQL server安排的作业''''复制代理程序核对''''

在事件查看器中,此错误messge接收:

SQLSERVERAGENT: 208: SQL Server Scheduled Job ''''Replication agents checkup''''
(0x8666D34A10837246B4030EA4E93E50BC) - Status: Failed - Invoked on: 2009-08-19 
03:30:01 - Message: The job failed. The owner () of job Replication agents 
checkup does not have server access.

要解决此问题,请执行以下步骤:

  1. 打开SQL企业参数并且检查发生故障的工作。

  2. 打开属性并且验证所有者是仅distributor_admin

  3. 重新启动工作。


相关信息


Document ID: 91961