症状
假设你使用 Microsoft SQL Server 2012 中的 "AlwaysOn 可用性组" 功能。 使用 Sys.dm_hadr_database_replica_states DMV 查询数据库状态信息时,可能会在结果中返回大量的行。 此外,SQL Server 错误日志中记录了类似于以下内容的错误消息:
<日期时间> spid41s 错误:17066,严重性:16,状态: 1. <SQL Server Assertion> spid41s SQL Server Assertion: File: < hadrdbmgrpartner>,line = 143 失败断言 = '! m_link。IsInList ()'. 此错误可能与计时有关。 如果在重新运行该语句后,该错误仍然存在,请使用 DBCC CHECKDB 检查数据库的结构完整性,或重启服务器以确保内存中的数据结构未损坏。 <日期时间> spid387s * * 转储线程-spid = 0,EC = 0x000000017E6DCB90<日期时间> spid387s * * * * * Files\Microsoft SQL Server\MSSQL11. 的堆栈转储MSSQLSERVER\MSSQL\LOG\SQLDump0002.txt<日期时间> spid387s * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <日期时间> spid387s * <日期时间> spid387s * 开始堆栈转储: <日期时间> spid387s * <日期时间><> <spid387s * 位置的日期时间> * 位置: 387 hadrdbmgrpartner。 cpp: 143<日期时间> spid387s * Expression:! m_link。IsInList () <日期时间> spid387s * SPID: 387<日期时间> spid387s * 进程 ID:2512
解决方案
此问题已在 SQL Server 的以下累积更新中修复:
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语 。