事务复制 - 未分配的命令

时间:2016-10-30 07:24:07

标签: sql-server sql-server-2012 transactional-replication

我们在事务复制中遇到问题。问题是我在发布者和订阅之间的行数不匹配。我们在SQL2012企业版SP3中进行了事务复制

  • 发布 - 独立服务器
  • 订阅 - AlwaysOn服务器(推送)
  • 分发 - 3 rd 服务器独立

发布者/订阅者组合有几个出版物都可以正常工作,除了1.有问题的出版物有一个表。该表有一个XML数据类型的列,大小为260GB,行数为5.5百万。

数据未被复制到订户;未分配的命令显示919382并计数。我认为问题可能出在分发服务器上。

repl进程尝试执行sys.sp_MSget_repl_commands; 1并等待PREEMPTIVE_OS_WAITFORSINGLEOBJEC。我发现使用sp_whoisactive

我们在分发作业中收到错误消息:

  

当代理的读者线程等待的时间超过代理的-messageinterval时间时发生的引发事件。 (默认情况下,时间为60秒。)如果您注意到为代理记录的状态2事件,则表示代理花费很长时间将更改写入目标。

此外,没有数据库锁。请告知如何解决问题。谢谢&问候。

1 个答案:

答案 0 :(得分:0)

您是否尝试在分发代理上启用输出日志记录?这应该详细告诉你代理人在哪里被阻止。

How to enable replication agents for logging to output files in SQL Server