KB4024393-修复:当你在 SQL Server 2016 或2017中恢复已挂起的可用性数据库时,辅助副本上发生断言错误

随时随地通过任何设备使用 Microsoft 365 工作

升级到 Microsoft 365 以在任何位置使用最新的功能和更新。

立即升级

症状

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

Date/Time 错误:17066,严重性:16,状态:1。

Date/Time SQL Server 断言:文件: <恢复 .cpp>,line =LineNumber失败断言 = "recXdes->IsLockReleased () && recXdes->GetOutstandingCount () = = 0"。 此错误可能与计时有关。 如果再次运行该语句后,该错误仍然存在,请使用 DBCC CHECKDB 检查数据库的结构完整性,或者重新启动服务器以确保内存中的数据结构未损坏。

Date/Time 错误:3624,严重性:20,状态:1。

Date/Time 系统断言检查失败。 有关详细信息,请查看 SQL Server 错误日志。 通常,断言失败由软件错误或数据损坏导致。 若要检查数据库是否损坏,请考虑运行 DBCC CHECKDB。 如果你同意在安装期间将转储发送到 Microsoft,则会向 Microsoft 发送一个小转储。 在来自 Microsoft 的最新服务包或来自技术支持的修补程序中,可能会提供更新。

Date/Time 错误:3624,严重性:20,状态:2。

Date/Time 系统断言检查失败。 有关详细信息,请查看 SQL Server 错误日志。 通常,断言失败由软件错误或数据损坏导致。 若要检查数据库是否损坏,请考虑运行 DBCC CHECKDB。 如果你同意在安装期间将转储发送到 Microsoft,则会向 Microsoft 发送一个小转储。 在来自 Microsoft 的最新服务包或来自技术支持的修补程序中,可能会提供更新。

Date/Time 错误:3313,严重性:21,状态:2。

Date/Time 在数据库 DatabaseName中重做已记录的操作时,在日志记录 ID (RecordID)处出现错误。 通常,特定故障以前作为 Windows 事件日志服务中的错误登录。 从完整备份还原数据库,或修复数据库。

Date/Time 数据库 DatabaseName 的 Alwayson 可用性组数据移动已暂停,原因如下: "system" (源 ID 2;源字符串: "SUSPEND_FROM_REDO")。 若要恢复数据库中的数据移动,需要手动恢复数据库。 有关如何恢复可用性数据库的信息,请参阅 SQL Server 联机丛书。

Date/Time ALTER DB param 选项: RESUME

Date/Time 数据库 DatabaseName 的 Alwayson 可用性组数据移动已恢复。 这只是一条信息性消息。 无需用户操作。

Date/Time 在可用性副本ReplicaName上为辅助数据库DatabaseName建立了与副本 ID: ReplicaID对应的主数据库的 alwayson 可用性组连接。 这只是一条信息性消息。 无需用户操作。

Date/Time 已针对 ID 为DatabaseID的数据库识别了恢复 LSN (LsnNumber)。 这只是一条信息性消息。 无需用户操作。

解决方案

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

       SQL Server 2017 的累积更新1

       SQL Server 2016 SP1 的累积更新5

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

SQL Server 2017 的最新累计更新

SQL Server 2016 的最新累计更新

状态

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

参考

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

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×