当前位置 返回首页 > 修复案例 > 正文

sql故障错误消息8952,8956,8944,8928的案例修复

收到一个行内朋友的数据库,说是断电引起的的 。
通过DBCC检查

服务器: 消息 8952,级别 16,状态 1,行 1
表错误: 数据库 ’stk02′,索引 ’sysobjects.ncsysobjects’(ID 1)(索引 ID 2)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 1
索引行(1:831:29)(其值为 name = ‘DF__eiorwkm__custome__46BE619D’ and uid = 5 and id = 1186881949)指向由 标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 1
表错误: 数据库 ’stk02′,索引 ’syscolumns.ncsyscolumns’(ID 3)(索引 ID 2)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 1
索引行(1:859:116)(其值为 id = 1897224563 and name = ‘base_⑹ear_index’ and number = 0 and id = 1897224563 and colid = 7 and number = 0)指向由 标识的数据行。
服务器: 消息 8928,级别 16,状态 1,行 1
对象 ID 705916686,索引 ID 0: 未能处理页 (1:242611)。详细信息请参阅其它错误。
服务器: 消息 8944,级别 16,状态 1,行 1
表错误: 对象 ID 705916686,索引 ID 0,页 (1:242611),行 2。测试(ColumnOffsets <= (nextRec - pRec))失败。值为 8224 和 147。
服务器: 消息 8928,级别 16,状态 1,行 1
对象 ID 705916686,索引 ID 2: 未能处理页 (1:262093)。详细信息请参阅其它错误。
服务器: 消息 8939,级别 16,状态 1,行 1
表错误: 对象 ID 705916686,索引 ID 2,页 (1:262093)。测试(m_freeCnt == freeCnt)失败。值为 26 和 45。

通常这种情况可以直接用DBCC Checkdb命令就可以修复 。

通过sql查询执行了修复命令, 提示“该数据库处于回避恢复模式” 无法执行修复命令 。

分析文件,修复错误页面, 执行DBCC Checkdb 完成修复

到此为止,修复完成, 问题还是比较简单 。

上一篇 常州某企业 sql数据库不慎删除表记录日志文件也被清空的修复案例下一篇 河南某宾馆数据库错误5172提示不是有效数据库文件头的修复案例