症状
请考虑以下情况:
-
在 SQL Server AlwaysOn 组数据库中启用 Microsoft SQL Server Service Broker (SSB)。
-
您关闭并重新启动数据库。
-
请确保已成功接收确认(ACK)。
在这种情况下,即使确认收到成功,也不会从传输队列中删除消息。
原因
出现此问题的原因是,当你在干净关机后启动数据库时,SQL Server 不检查传输队列延迟删除任务是否可重用。 它假定传输队列推迟删除任务是正常的。
解决方案
在 SQL Server 的以下累积更新中,此问题首先已修复。
SQL Server 2014 的累积更新1 /en-us/help/2931693
SQL Server 2012 SP1 的累积更新9 /en-us/help/2931078
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
解决方法
若要解决此问题,请将 SQL Server 可用性组故障转移到辅助副本(如果需要,还可执行故障回复)。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。