SQL Server一致性错误修复案例总结

栏目: 数据库 · SQL Server · 发布时间: 5年前

今天遇到了一个关于数据库一致性错误的案例。海外工厂的一台SQL Server 2005(9.00.5069.00 Standard Edition)数据库在做DBCC CHECKDB的时候出现了一致性错误,下面总结一下处理过程。具体的一致性错误信息如下所示:

Msg 8992 , Level 16 , State 1 , Line 1

Check Catalog Msg 3853 , State 1 : Attribute ( referenced_major_id = 248841561 , referenced_minor_id = 6 ) of row ( class = 0 , object_id = 440842245 , column_id = 0 , referenced_major_id = 248841561 , referenced_minor_id = 6 ) in sys . sql_dependencies does not have a matching row ( object_id = 248841561 , column_id = 6 ) in sys . columns .

Msg 8992 , Level 16 , State 1 , Line 1

Check Catalog Msg 3853 , State 1 : Attribute ( referenced_major_id = 264841618 , referenced_minor_id = 7 ) of row ( class = 0 , object_id = 440842245 , column_id = 0 , referenced_major_id = 264841618 , referenced_minor_id = 7 ) in sys . sql_dependencies does not have a matching row ( object_id = 264841618 , column_id = 7 ) in sys . columns .

CHECKDB found 0 allocation errors and 2 consistency errors not associated with any single object .

DBCC results for 'sys.sysrowsetcolumns' .

Msg 2508 , Level 16 , State 1 , Line 1

The In- row data USED page count for object "GRNPGDetail" , index ID 0 , partition ID 60321137623040 , alloc unit ID 60321137623040 ( type In- row data ) is incorrect . Run DBCC UPDATEUSAGE .

关于第三个一致性错误,我之前多篇博客都介绍过这种类型的一致性错误,需要使用DBCC UPDATEUSAGE,该命令可以针对表或索引中的每个分区更正行、已用页、保留页、叶级页和数据页的计数。DBCC UPDATEUSAGE命令报告目录视图中的页数和行数错误并进行更正。这些错误可能导致sp_spaceused 系统存储过程返回不正确的空间使用报告。此处略过。

下面我们来看看下面这个一致性错误,从类型上,是属于元数据损坏(metadata corruption)。但是这个案例呢,又有点特别,跟我之前遇到 SQL Server元数据损坏(metadata corruption)修复 案例不同 我们先来看看分析过程

首先,通过object_id找到这三个对象,然后我们通过错误信息,可以判断sys.sql_dependencies里面引用的对象,发现在sys.columns里面不存在这行记录(object_id=248841561,column_id=6;object_id=264841618,column_id=7 ), 如下截图所示,确实没有找到(object_id=248841561,column_id=6;object_id=264841618,column_id=7 )的记录。

Msg 8992 , Level 16 , State 1 , Line 1

Check Catalog Msg 3853 , State 1 : Attribute ( referenced_major_id = 248841561 , referenced_minor_id = 6 ) of row ( class = 0 , object_id = 440842245 , column_id = 0 , referenced_major_id = 248841561 , referenced_minor_id = 6 ) in sys . sql_dependencies does not have a matching row ( object_id = 248841561 , column_id = 6 ) in sys . columns .

SQL Server一致性错误修复案例总结

SQL Server一致性错误修复案例总结

SQL Server一致性错误修复案例总结

然后分析存储过程 zzzPrcUnallocationAgingSM_not used (其实看这个存储过程命名,就知道这个存储过程废弃了,我们有些开发人员喜欢这样将一个存储过程标记为废弃了),研究分析发现,代码里面视图VW_SMAllocatedQty有个字段FactoryPoNo,而实际上,视图已经没有了这个字段,所以才会报这个一致性错误,只要注释掉这一行或删除这个存储过程,问题就解决了,DBCC CHEKDB检查,就会发现不存在一致性错误了。

SQL Server一致性错误修复案例总结


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

史蒂夫·乔布斯传

史蒂夫·乔布斯传

[美] 沃尔特·艾萨克森 / 管延圻、魏群、余倩、赵萌萌、汤崧 / 中信出版社 / 2011-10-24 / 68.00元

这本乔布斯唯一授权的官方传记,在2011年上半年由美国出版商西蒙舒斯特对外发布出版消息以来,备受全球媒体和业界瞩目,这本书的全球出版日期最终确定为2011年11月21日,简体中文版也将同步上市。 两年多的时间,与乔布斯40多次的面对面倾谈,以及与乔布斯一百多个家庭成员、 朋友、竞争对手、同事的不受限的采访,造就了这本独家传记。 尽管乔布斯给予本书的采访和创作全面的配合,但他对内容从不干......一起来看看 《史蒂夫·乔布斯传》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具