症状
日志读取器代理程序或 CDC 扫描作业执行sp_replcmds 存储过程以返回标记为复制的命令。 在 Microsoft SQL Server 中,如果在执行过程中取消了存储过程,则可能会在 SQL Server 错误日志中记录类似于以下内容的失败断言:
错误:17066,严重性:16,状态:1。 SQL Server 断言:文件: < replicat>, lineNumber 失败断言 = "db_mem"。 此错误可能与计时有关。 如果再次运行该语句后,该错误仍然存在,请使用 DBCC CHECKDB 检查数据库的结构完整性,或者重新启动服务器以确保内存中的数据结构未损坏。
此外,在断言转储失败后,将创建多个访问冲突转储文件。
解决方案
在 SQL Server 的以下累积更新中修复了此问题:
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的术语。