拿到客户数据后,对数据库DBCC Checkdb修复,报“消息211,级别23,状态51,第1 行,可能发生了架构损坏。请运行DBCC CHECKCATALOG。”错误.



看来用SQL SERVER自身命令是无法修了,出现这种错误一般是系统表损坏,修复方法一般有两种,


第一种方法是使用数据库修复软件把数据提取成脚本,然后再重新生成数据库。这种方法优点是不用花费太多的人力,缺点是数据库重新生成后会或多或少丢失一部分数据,而且由于重新生成的库有视图或存储过程等丢失的情况,这样软件无法直接调用数据库。 


第二种方法是手工修复错误信息,保持数据库结构“原汁原味”,这种修复方法比较费力,但如果数据库较大,使用第一种修复方法会花费很长时间,而手工修复除了结构不变,速度有时也会快很多。修复好的数据库软件调用也没有任何问题。缺点是要对数据库存储结构要非常清楚。 


由于这个数据库是HIS数据库,客户要求是软件必需能调用。所以采用第二种修复方案。通过一天的分析修复,最终数据库修复成功。


【联系方式】


张祚,联系方式13146539790 ,工程师QQ:86066616

网站地址: http://www.dbsfix.com           http://www.sjhfcn.com 



修复过程中还出现以下一些错误。 


消息8921,级别16,状态1,第1 行

检查已终止。收集事实数据时检测到错误。可能是tempdb 空间用尽或某个系统表不一致。请检查前面的错误消息。 


消息8906,级别16,状态1,第1 行

数据库ID 9 中的页(1:641) 在SGAM (1:3) 和PFS (1:1) 中进行了分配,但未在任何IAM 中分配。PFS 标志'MIXED_EXT ALLOCATED   0_PCT_FULL'。 


消息 2576,级别 16,状态 1,第 1 行

索引分配映射(IAM)页 (1:1940) (位于对象 ID 219863850,索引 ID 2,分区 ID 577358950694912,分配单元 ID 577358950694912 (类型为 In-row data))的上一个指针指向了 IAM 页 (0:0),但扫描过程中检测不到它。 


消息8929,级别16,状态1,第1 行

对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 281474980642816 (类型为In-row data): 在ID 为1307705344 的行外数据中发现错误,该数据由RID = (1:154:0) 标识的data 记录所有 


消息8928,级别16,状态1,第1 行

对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 71776119065149440 (类型为LOB data): 无法处理页(1:6064)。有关详细信息,请参阅其他错误消息。 


消息8965,级别16,状态1,第1 行

表错误: 对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 71776119065149440 (类型为LOB data)。位于页(1:6064),槽0,文本ID 1307705344 的行外数据节点由页(1:38816),槽0 引用,但扫描过程中未检测到该节点。 


消息8944,级别16,状态13,第1 行

表错误: 对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 71776119065149440 (类型为LOB data),页(1:6064),行5。测试(ColumnOffsets <= (nextRec - pRec))失败。值为1816 和384。 


消息8944,级别16,状态13,第1 行

表错误: 对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 71776119065149440 (类型为LOB data),页(1:6064),行5。测试(ColumnOffsets <= (nextRec - pRec))失败。值为1816 和384。 


消息8928,级别16,状态1,第1 行

对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 71776119065149440 (类型为LOB data): 无法处理页(1:6065)。有关详细信息,请参阅其他错误消息。 


消息8906,级别16,状态1,第1 行

数据库ID 9 中的页(1:1213) 在SGAM (1:3) 和PFS (1:1) 中进行了分配,但未在任何IAM 中分配。PFS 标志'MIXED_EXT ALLOCATED   0_PCT_FULL'。 


消息7985,级别16,状态2,第1 行

系统表预检查: 对象ID 13。无法使用闩锁类型SH 读取并闩锁页(1:3189)。由于不可修复的错误,CHECK 语句已终止。 


消息5233,级别16,状态1,第1 行

表错误: 分配单元ID 851968,页(1:3189)。测试(sorted[i].offset >= max)失败。值是41 和33。


消息5233,级别16,状态1,第1 行

表错误: 分配单元ID 851968,页(1:3189)。测试(sorted [i].offset >= PAGEHEADSIZE)失败。值是41 和33。