MSSQLSERVER_2577

新建日期: 2006 年 4 月 14 日

详细信息

产品名称

SQL Server

产品版本

9.0

产品内部版本号

9.00.1281.60

事件 ID

2577

事件源

MSSQLSERVER

组件

SQLEngine

符号名称

DBCC_IAM_CHAIN_SEQUENCE_OUT_OF_ORDER

消息正文

在对象 ID O_ID,索引 ID I_ID,分区 ID PN_ID,分配单元 ID A_ID(类型为 TYPE)的索引分配映射 (IAM) 链中,链序列号顺序不对。序列号为 SEQUENCE1 的页 P_ID1 指向了序列号为 SEQUENCE2 的页 P_ID2。

说明

每个索引分配映射 (IAM) 页都有一个序列号。该序列号指示 IAM 页在 IAM 链内的位置。规则是用该序列号加一来表示每个 IAM 页。IAM 页 P_ID2 具有的序列号未遵循此规则。

用户操作

查找硬件故障

运行硬件诊断可以解决任何问题。也可以通过检查 Windows 系统和应用程序日志以及 SQL Server 错误日志以查看是否存在由硬件故障导致的错误发生。解决这些日志中包含的所有与硬件相关的问题。

如果存在持久性数据损坏问题,请尝试改用其他的硬件组件来解决此问题。进行检查以确保系统未启用磁盘控制器上的写缓存。如果您怀疑是写缓存出现问题,请与硬件供应商联系。

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

备份还原

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

运行 DBCC CHECKDB

如果不存在干净的可用备份,请运行没有 REPAIR 子句的 DBCC CHECKDB 以确定损坏范围。建议使用 DBCC CHECKDB 的 REPAIR 子句。然后,运行具有相应 REPAIR 子句的 DBCC CHECKDB 以修复损坏。

ms365273.Caution(zh-cn,SQL.90).gif注意:
如果您不确定运行具有 REPAIR 子句的 DBCC CHECKDB 对数据有何影响,请在运行此语句之前,与主要支持提供商联系。

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

运行 REPAIR 选项的结果

运行 REPAIR 将重新生成 IAM 链。REPAIR 首先将现有的 IAM 链拆分为两半。链的第一半将以 IAM 页 P_ID1 结束。P_ID1 页的下一页指针将设置为 (0:0)。链的第二半将从 IAM 页 P_ID2 开始。P_ID2 页的上一页指针将设置为 (0:0)。

然后,REPAIR 将链的两半连接在一起,并重新生成 IAM 链的序列号。将释放无法修复的任何 IAM 页。

ms365273.Caution(zh-cn,SQL.90).gif注意:
此修复可能会导致数据丢失。