MSSQLSERVER_7995

适用范围:SQL Server

详细信息

Attribute
产品名称 SQL Server
事件 ID 7995
事件来源 MSSQLSERVER
组件 SQLEngine
符号名称 DBCC2_SYSTEM_CATALOGS_CORRUPT
消息正文 数据库 'DBNAME':系统目录中存在一致性错误,无法进一步处理 DBCC CHECKNAME。

说明

DBCC CHECKDB 进程包含以下三个阶段:

  1. 分配检查。 这等效于运行 DBCC CHECKALLOC。

  2. 系统表一致性检查。 这等效于对所需系统基表的小列表运行 DBCC CHECKTABLE。

  3. 完成数据库一致性检查。

MSSQLEngine_7995 在第 2 阶段中引发,指示 DBCC CHECKDB 找到该命令无法修复的错误或者尚未指定 REPAIR。 DBCC CHECKDB 无法继续执行第 3 阶段,因为相关的系统基表存储数据库中所有对象的元数据,或者系统基表已损坏。

用户操作

查找硬件故障

运行硬件诊断并更正任何问题。 另请检查Microsoft Windows 系统和应用程序日志以及 SQL Server 错误日志,以查看是否因硬件故障而发生错误。 修复日志中包含的所有与硬件相关的问题。

如果持续遇到数据损坏问题,请尝试分别换下不同的硬件组件以确定问题所在。 进行检查以确保系统未启用磁盘控制器上的写缓存。 如果怀疑写入缓存是问题起因,请与硬件供应商联系。

最后,您可能会发现,切换到全新的硬件系统是解决问题的极佳途径。 此切换操作可能包括重新格式化磁盘驱动器和重新安装操作系统。

从备份还原

如果出现的问题与硬件无关,并且您确信有可用的干净备份,请从备份中还原数据库。

运行 DBCC CHECKDB

如果不存在干净的可用备份,请运行不带 REPAIR 子句的 DBCC CHECKDB 以确定损坏程度。 建议使用 DBCC CHECKDB 的 REPAIR 子句。 接下来,请运行带适当 REPAIR 子句的 DBCC CHECKDB 修复损坏的数据。

注意

如果您不确定运行带有 REPAIR 子句的 DBCC CHECKDB 会对数据造成何种影响,请在运行该语句前与您的主要支持提供商联系。

如果运行具有 REPAIR 子句的 DBCC CHECKDB 无法解决存在的问题,请与主要支持提供商联系。

运行 REPAIR 选项的结果

检查错误列表以查看 REPAIR 将对每个错误执行的操作。