DBCC CHECKDB 在我的 sql server 2008 R2 数据库中显示以下错误消息
消息 8921,级别 16,状态 1,第 2 行检查已终止。收集事实时检测到故障。可能是 tempdb 空间不足或系统表不一致。检查以前的错误。
解决办法是什么?
DBCC CHECKDB 在我的 sql server 2008 R2 数据库中显示以下错误消息
消息 8921,级别 16,状态 1,第 2 行检查已终止。收集事实时检测到故障。可能是 tempdb 空间不足或系统表不一致。检查以前的错误。
解决办法是什么?
鉴于 DBCC CHECKALLOC 也失败了,没有损坏消息,你的数据库有损坏的元数据,你需要从备份中恢复(它做的第一件事是对它需要的三个关键系统表运行一些基本检查,如果它们是严重损坏,它将失败并显示消息 8921)。您在这里别无选择 - 您无法运行修复,因为您无法运行 DBCC CHECKDB。
您可以使用 DBCC CHECKTABLE 对 sys.objects 中的连续对象 ID 使用 DBCC CHECKTABLE 来缩小损坏的系统表的范围,然后围绕损坏手动进行编辑,但这是非常先进的并且成功的机会非常低。
如果您没有任何备份,则必须创建一个新数据库,然后将所有模式和数据导出到新数据库中。