Replication Server warm standby不能同步数据的一个问题解决
Replication Server 15.2复制服务器不能同步数据,复制节点的DSI线程异常关闭。
RS的日志文件中显示错误日志如下:
E. 2011/03/03 19:25:33. ERROR #5074 DSI EXEC(1011(1) v890f_REP.ultranms2) - dsiqmint.c(1616)
A transaction marked TO_PRIMARY for database 'v890f_REP.ultranms2' has the same user name as the maintenance user for the database. This transaction should be skipped, or the maintenance user name for the database needs to be changed.
I. 2011/03/03 19:25:33. The DSI thread for database 'v890f_REP.ultranms2' is shutdown.
使用 admin logical_status 看到
1> admin logical_status
2> go
Logical Connection Name
Active Connection Name
Active Conn State
Standby Connection Name
Standby Conn State
Controller RS
Operation in ProgressState of Operation in Progress
Spid
---------------------------------------------------------------------------
---------------------------------------------------------------------------
-------------------------------------------------------------
---------------------------------------------------------------------------
-------------------------------------------------------------
---------------------------------------------------------------------------
------------------------------------------------------------------------------------
-----------
------------------------------------------------------------------------------------
-----------
-----
[1007] TEST.ultranms2
[1008] TEST.ultranms2
Active/
[1011] LIUZHENFU_REP.ultranms2
Suspended by Error/
[16777318] myrsserver
NoneNone
根据ERROR #5074的错误信息,原来是对主点上的主库进行操作的时候使用了RS的maint用户:ultranms2_maint。
使用resume connection to v890f_REP.ultranms2 skip transaction
重新启动复制节点上的DSI线程。
I. 2011/03/03 19:27:56. The DSI thread for database 'v890f_REP.ultranms2' is started.
I. 2011/03/03 19:27:58. DUMP OF 1 SKIPPED TRANSACTIONS FOR DATABASE 'v890f_REP.ultranms2'
I. 2011/03/03 19:27:58. begin transaction
I. 2011/03/03 19:27:58. execute rs_update_lastcommit @origin = 1008, @origin_qid = 0x000000000053f59900009e67001300009e66001b00009e9b014025750000000000000001, @secondary_qid = 0x000000000000000000000000000000000000000000000000000000000000000000000000, @origin_time = '20110303 19:25:37:030'
I. 2011/03/03 19:27:58. if @@error <> 0 rollback transaction
I. 2011/03/03 19:27:58. commit transaction
I. 2011/03/03 19:27:58. END DUMP OF 1 SKIPPED TRANSACTIONS FOR DATABASE 'v890f_REP.ultranms2'
I. 2011/03/03 19:27:58. The first 1 transaction(s) for database 'v890f_REP.ultranms2' have been logged into the exceptions log and skipped. They have also been logged either in repserver log, or the location specified by sysadmin dump_file command.
再用 admin logical_status 查看
[1007] TEST.ultranms2
[1008] TEST.ultranms2
Active/
[1011] LIUZHENFU_REP.ultranms2
Active/
[16777318] myrsserver
NoneNone
warm standby恢复正常了。