症状

假设使用 Microsoft SQL Server 2016 或 2017 Always On可用性组。 恢复挂起的可用性数据库时,辅助副本 (replica) 可能会出现断言错误。 此外,类似于以下内容的错误消息将记录在辅助副本 (replica) SQL Server错误日志中。

日期/时间 错误:17066,严重性:16,状态:1。

日期/时间 SQL Server断言:文件:<recovery.cpp>,line=LineNumber Failed 断言 = 'recXdes->IsLockReleased () && recXdes->GetOutstandingCount () == 0'。 此错误可能与计时相关。 如果错误在重新运行语句后仍然存在,请使用 DBCC CHECKDB 检查数据库以确保结构完整性,或重启服务器以确保内存中的数据结构不会损坏。

日期/时间错误:3624,严重性:20,状态:1。

日期/时间系统断言检查失败。 有关详细信息,请查看SQL Server错误日志。 通常,断言失败是由软件 bug 或数据损坏引起的。 若要检查数据库损坏,请考虑运行 DBCC CHECKDB。 如果你同意在安装过程中向 Microsoft 发送转储,则会向 Microsoft 发送一个小型转储。 Microsoft 可能在最新的 Service Pack 或技术支持的修补程序中提供了更新。

日期/时间错误:3624,严重性:20,状态:2。

日期/时间系统断言检查失败。 有关详细信息,请查看SQL Server错误日志。 通常,断言失败是由软件 bug 或数据损坏引起的。 若要检查数据库损坏,请考虑运行 DBCC CHECKDB。 如果你同意在安装过程中向 Microsoft 发送转储,则会向 Microsoft 发送一个小型转储。 Microsoft 可能在最新的 Service Pack 或技术支持的修补程序中提供了更新。

日期/时间错误: 3313,严重性: 21,状态: 2。

日期/时间在数据库 DatabaseName 中重做记录的操作期间,日志记录 ID (RecordID) 发生错误。 通常,特定失败以前在 Windows 事件日志服务中记录为错误。 从完整备份还原数据库,或修复数据库。

日期/时间Always On数据库 DatabaseName 的可用性组数据移动已暂停,原因如下:“系统” (源 ID 2;源字符串:“SUSPEND_FROM_REDO”) 。 若要恢复数据库上的数据移动,需要手动恢复数据库。 有关如何恢复可用性数据库的信息,请参阅联机丛书SQL Server。

日期/时间ALTER DB 参数选项:RESUME

日期/时间Always On数据库 DatabaseName 的可用性组数据移动已恢复。 这只是一条信息性消息。 无需用户操作。

日期/时间Always On可用性组与为辅助数据库 DatabaseName 建立的主数据库连接,副本 (replica) 副本 ID 为 ReplicaID 的可用性副本 (replica) ReplicaName。 这只是一条信息性消息。 无需用户操作。

日期/时间ID 为数据库标识了恢复 LSN (LsnNumber) 。 这只是一条信息性消息。 无需用户操作。

解决方法

以下SQL Server累积更新中修复了此问题:

       2017 SQL Server累积更新 1

       SQL Server 2016 SP1 的累积更新 5

SQL Server的每个新累积更新都包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看SQL Server的最新累积更新:

SQL Server 2017 的最新累计更新

SQL Server 2016 的最新累计更新

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。  

参考

了解 Microsoft 用于描述软件更新 的术语

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。