您的位置:首页 > 其它

Lync 2010 升级到Lync 2013 故障解决一例!

2014-01-04 23:45 211 查看
今天协助客户在Lync 2010 上安装了CMS 数据库,安装完成后,我们利用移动 CMS 的 Powershell 命令。移动完成后为了完成Lync CMS Holder 角色.
然后我们重启2013 服务器就发生问题了,所有用户都出现掉线的情况,然后始终无法登陆。在服务器中不断的出现警告日志,在拓扑架构中的服务器User Server 和 Registrar服务始终无法正常启动,然后查看日志,始终有以下两个错误ID:

一个是 EVENTID 是32174
Log Name: Lync Server
Source: LS User Store Sync Agent
Event ID: 57006
Level: Warning
Keywords: Classic
Description: The RtcDb Sync Agent has encountered an Exception:

System.Data.SqlClient.SqlException (0x80131904): Violation of PRIMARY KEY constraint 'PK__#B91E3E0__66842180FE100268'. Cannot insert duplicate key in object 'dbo.@Contact'. The duplicate key value is (user2@contoso.com).
###63020:ReppOnDataReceived:Failed to import lcd for user user1@contoso.com.
The statement has been terminated.
###50001:ImppImportLowChurnData:Propagation
###50001:XdspApplyChanges:Propagation
###50001:XdspOnDataReceived:Propagation
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Microsoft.Rtc.Common.Data.DBCore.Execute(SprocContext sprocContext, SqlConnection sqlConnection, SqlTransaction sqlTransaction)
ClientConnectionId:9185170e-60f4-48b3-9f72-5e80d5a65b45

另外一个就是57006

Log Name: Lync Server
Source: LS User Store Sync Agent
Date: 8/19/2013 12:50:16 AM
Event ID: 57006
Task Category: (1061)
Level: Warning
Description:
The RtcDb Sync Agent has encountered an Exception: [System.Data.SqlClient.SqlException (0x80131904): XML parsing: line 1, character 61530, semicolon expected
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Microsoft.Rtc.Common.Data.DBCore.Execute(SprocContext sprocContext, SqlConnection sqlConnection, SqlTransaction sqlTransaction)

经过多次尝试,网上方法搜索一大堆,结果还是没有方法解决,后来查到一篇文章讲重建配置数据库的,这方法值得一试,我们先把配置及用户数据线备份下:
PS C:\Users\Lync_Admin> Export-CsConfiguration -FileName "C:\Config.zip"
PS C:\Users\Lync_Admin> Export-CsLisConfiguration -FileName C:\E911Config.bak
PS C:\Users\Lync_Admin> Export-CsUserData -PoolFqdn -FileName "C:\ExportedUserData.zip"

接下来我们执行如下的命令:
Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn test.test.com -UseDefaultSqlPaths –Clean

执行完毕后,我们发现2013 所有的前端都起来了。问题得到了解决,不过这个步骤危险系数高,他相当于重建所有的配置数据库!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: