症状
当您在 Microsoft SQL Server 2012 或 SQL Server 2014 中设置事务复制并初始化来自备份的事务订阅时。 在初始同步期间,分发代理将失败,并且你会收到以下错误:
连接到订阅服务器 InitializingNo 复制的事务可用。42000找不到存储过程 "sp_MSins_"。 281242000找不到存储过程 "sp_MSins_"。 2812
原因
此问题是由日志读取器代理和分发代理初始执行之间的计时差异导致的。 如果在发布服务器上发生大量事务更改,日志读取器代理在生成并将自定义存储过程脚本添加到分发数据库中的 MSRepl_commands 时出现延迟。 如果在添加这些命令之前,分发代理启动并已向分发数据库进行了往返,它将提前移动事务时间戳,并报告 "没有复制的事务可用"。 分发代理稍后的同步尝试将无法检测自定义存储过程创建命令,并且将失败,并出现 "症状" 部分中提及的错误。
解决方案
在 SQL Server 的以下累积更新中,此问题首先已修复。
SQL Server 2014 的累积更新1 /en-us/help/2931693
SQL Server 2012 SP1 的累积更新9 /en-us/help/2931078
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。