创建尽可能简单的数据库:
CREATE DATABASE DatabaseCheck
将此数据库添加到可用性组,其中辅助数据库不可读
在主要运行中:
DBCC CHECKDB ('DatabaseCheck') WITH EXTENDED_LOGICAL_CHECKS
它成功了:
CHECKDB 在数据库“DatabaseCheck”中发现 0 个分配错误和 0 个一致性错误。DBCC 执行已完成。如果 DBCC 打印了错误消息,请联系您的系统管理员。
在辅助服务器上运行相同的 DBCC 命令。即使未发现任何错误,它仍会失败:
CHECKDB 在数据库“DatabaseCheck”中发现 0 个分配错误和 0 个一致性错误。消息 0,级别 11,状态 0,第 1 行 当前命令发生严重错误。结果(如果有)应被丢弃。
- 删除 WITH
EXTENDED_LOGICAL_CHECKS
可消除错误 - 使辅助副本可读可以消除错误
- 执行故障转移并检查新的主服务器后错误消失。检查新的辅助服务器后再次显示错误。
知道这是怎么回事吗?检查DBCC CHECKDB 文档没有提到 EXTENDED_LOGICAL_CHECKS 在不可读的辅助副本上不受支持。在我看来,这似乎是命令本身的一个错误。
我在命令输出中注意到的一件事是,它会检查如下统计数据:
已验证统计信息“sys.sysrscols.clst”的完整性。已验证统计信息“sys.sysrowsets.clust”的完整性。已验证统计信息“sys.sysrowsets._WA_Sys_00000002_00000005”的完整性。已验证统计信息“sys.sysrowsets._WA_Sys_00000003_00000005”的完整性。已验证统计信息“sys.sysrowsets._WA_Sys_00000006_00000005”的完整性。已验证统计信息“sys.sysrowsets._WA_Sys_00000004_00000005”的完整性。已验证统计信息“sys.sysrowsets._WA_Sys_00000005_00000005”的完整性。已验证统计信息“sys.sysrowsets._WA_Sys_00000008_00000005”的完整性。
在辅助运行时不存在这些
转载于:
Microsoft SQL Server 2019 (RTM-CU23) (KB5030333) - 15.0.4335.1 (X64) 2023 年 9 月 21 日 17:28:44 版权所有 (C) 2019 Microsoft Corporation 开发人员版(64 位)在 Windows Server 2019 Standard 10.0(内部版本 17763:)上
编辑:
错误日志中唯一的消息是:
Domain\user 执行的 DBCC CHECKDB (DatabaseCheck) 发现 0 个错误并修复了 0 个错误。耗时:0 小时 0 分钟 0 秒。内部数据库快照具有分割点 LSN = 00000034:000001b1:0001 和第一个 LSN = 00000034:000001af:0002。
sys.dm_server_memory_dumps 中没有最近的转储