错误8921运行DBCC CHECKDB

时间:2016-05-30 17:34:34

标签: sql sql-server-2008-r2 corruption dbcc

DBCC CHECKDB在我的sql server 2008 R2数据库中显示以下错误消息

Msg 8921,Level 16,State 1,Line 2 检查已终止。收集事实时检测到失败。可能tempdb空间不足或系统表不一致。检查以前的错误。

解决方案是什么?

1 个答案:

答案 0 :(得分:2)

鉴于DBCC CHECKALLOC也失败,没有损坏消息,您的数据库已损坏元数据,您需要从备份中恢复(它首先要做的是对它需要的三个关键系统表执行一些基本检查,如果他们严重受损,它将失败,消息8921)。你在这里别无选择 - 你无法进行修复,因为你无法运行DBCC CHECKDB。

您可以使用来自sys.objects的连续对象ID上的DBCC CHECKTABLE缩小哪个系统表损坏,然后手动编辑损坏,但这非常先进并且非常有用成功的可能性很小。

如果您没有备份,则必须创建新数据库,然后将所有模式和数据导出到新数据库中。