以文本方式查看主题

-  昂捷论坛  (http://www.enjoyit.com.cn/bbs/index.asp)
--  □-技术研讨会  (http://www.enjoyit.com.cn/bbs/list.asp?boardid=36)
----  数据表错误导致日结失败的处理过程  (http://www.enjoyit.com.cn/bbs/dispbbs.asp?boardid=36&id=8140)

--  作者:prcak47
--  发布时间:2011/9/9 17:26:02
--  数据表错误导致日结失败的处理过程

某客户反应日结失败,手工执行指示如下错误

 

(1 行受影响)

(1 行受影响)
消息 0,级别 11,状态 0,第 0 行
当前命令发生了严重错误。应放弃任何可能产生的结果。

 

找到日结过程,单步执行后,发现是tb_o_sg表提示错误

执行select * from tb_o_sg就会有这种错误

 

用语句检查表

dbcc checktable(\'tb_o_sg\')

返回信息是正常的

 

重建索引提示错误,删除索引in_o_sg_gds失败,删除索引PK_tb_o_sg成功,创建失败。

 

用语句

 

----将数据库创建为单用户

ALTER DATABASE enjoy_store
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
----修复表及其索引
dbcc checktable(\'tb_o_sg\',REPAIR_ALLOW_DATA_LOSS)
----恢复数据库状态
ALTER DATABASE enjoy_store
SET MULTI_USER;

 

执行结果如下

 

tb_o_sg的 DBCC 结果。
修复: 已为数据库 \'enjoy_store\' 中的对象 \'dbo.tb_o_sg\' 成功地重新生成了 Clustered 索引。
修复: 页 (1:193916) 已从对象 ID 983934827,索引 ID 1,分区 ID 72057607359823872,分配单元 ID 72057607649361920 (类型为 In-row data)释放。
修复: 已为数据库 \'enjoy_store\' 中的对象 \'dbo.tb_o_sg, in_o_sg_datetime\' 成功地重新生成了 Nonclustered 索引。
修复: 已为数据库 \'enjoy_store\' 中的对象 \'dbo.tb_o_sg, in_o_sg_identity\' 成功地重新生成了 Nonclustered 索引。
修复: 已为数据库 \'enjoy_store\' 中的对象 \'dbo.tb_o_sg, in_o_sg_seller\' 成功地重新生成了 Nonclustered 索引。
消息 8945,级别 16,状态 1,第 1 行
表错误: 将重新生成对象 ID 983934827,索引 ID 1。
该错误已修复。
消息 8928,级别 16,状态 1,第 1 行
对象 ID 983934827,索引 ID 1,分区 ID 72057607359823872,分配单元 ID 72057607649361920 (类型为 In-row data): 无法处理页 (1:193916)。有关详细信息,请参阅其他错误消息。
该错误已修复。
消息 8944,级别 16,状态 15,第 1 行
表错误: 对象 ID 983934827,索引 ID 1,分区 ID 72057607359823872,分配单元 ID 72057607649361920 (类型为 In-row data),页 (1:193916),行 0。测试(nVarCols && (hdr->r_tagA & RecConst::VARIABLE_COLUMNS))失败。值为 0 和 32。
该错误已修复。
消息 8944,级别 16,状态 15,第 1 行
表错误: 对象 ID 983934827,索引 ID 1,分区 ID 72057607359823872,分配单元 ID 72057607649361920 (类型为 In-row data),页 (1:193916),行 0。测试(nVarCols && (hdr->r_tagA & RecConst::VARIABLE_COLUMNS))失败。值为 0 和 32。
该错误已修复。
消息 8976,级别 16,状态 1,第 1 行
表错误: 对象 ID 983934827,索引 ID 1,分区 ID 72057607359823872,分配单元 ID 72057607649361920 (类型为 In-row data)。在扫描过程中未发现页 (1:193916),但该页的父级 (1:206592) 和上一页 (1:193914) 都引用了它。请检查以前的错误消息。
该错误已修复。
消息 8978,级别 16,状态 1,第 1 行
表错误: 对象 ID 983934827,索引 ID 1,分区 ID 72057607359823872,分配单元 ID 72057607649361920 (类型为 In-row data)。页 (1:193917) 缺少上一页 (1:193916) 对它的引用。可能是因为链链接有问题。
该错误已修复。
消息 8945,级别 16,状态 1,第 1 行
表错误: 将重新生成对象 ID 983934827,索引 ID 2。
该错误已修复。
消息 8945,级别 16,状态 1,第 1 行
表错误: 将重新生成对象 ID 983934827,索引 ID 3。
该错误已修复。
消息 8945,级别 16,状态 1,第 1 行
表错误: 将重新生成对象 ID 983934827,索引 ID 28。
该错误已修复。
对象 \'tb_o_sg\' 的 5621 页中有 127062 行。
CHECKTABLE 在表 \'tb_o_sg\' (对象 ID 983934827)中发现 0 个分配错误和 5 个一致性错误。
CHECKTABLE 在表 \'tb_o_sg\' (对象 ID 983934827)中修复了 0 个分配错误和 5 个一致性错误。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

 

再执行select * from tb_o_sg,没有提示错误

 


--  作者:wangxiaoxiao
--  发布时间:2011/9/11 16:02:55
--  

是什么原因造成数据库表tb_o_sg出错的呢?


--  作者:prcak47
--  发布时间:2011/9/13 8:48:17
--  

店铺装修导致服务器断电,使tb_o_sg出错

而且只是索引错误,这使得流水分解过程不出错,日结过程出错。


--  作者:prcak47
--  发布时间:2011/9/13 14:02:02
--  
消息 8909,级别 16,状态 1,第 2 行
表错误: 对象 ID 0,索引 ID -1,分区 ID 0,分配单元 ID 72057594037927936 (类型为 Unknown),页 ID (1:178380) 在其页头中包含错误的页 ID。页头中的 PageId = (0:0)。
该错误已修复。
CHECKTABLE 发现有 0 个分配错误和 1 个一致性错误与任何单个的对象都没有关联。
CHECKTABLE 修复了 0 个分配错误和 1 个一致性错误,这些错误不与任何单个对象相关联。
tb_sum_status的 DBCC 结果。
修复: 已为数据库 \'enjoy_store\' 中的对象 \'dbo.tb_sum_status\' 成功地重新生成了 Clustered 索引。
修复: 页 (1:178380) 已从对象 ID 1609824847,索引 ID 1,分区 ID 72057607367819264,分配单元 ID 72057607569211392 (类型为 In-row data)释放。
消息 8945,级别 16,状态 1,第 2 行
表错误: 将重新生成对象 ID 1609824847,索引 ID 1。
该错误已修复。
消息 8928,级别 16,状态 1,第 2 行
对象 ID 1609824847,索引 ID 1,分区 ID 72057607367819264,分配单元 ID 72057607569211392 (类型为 In-row data): 无法处理页 (1:178380)。有关详细信息,请参阅其他错误消息。
该错误已修复。
消息 8976,级别 16,状态 1,第 2 行
表错误: 对象 ID 1609824847,索引 ID 1,分区 ID 72057607367819264,分配单元 ID 72057607569211392 (类型为 In-row data)。在扫描过程中未发现页 (1:178380),但该页的父级 (1:244139) 和上一页 (1:297738) 都引用了它。请检查以前的错误消息。
该错误已修复。
消息 8978,级别 16,状态 1,第 2 行
表错误: 对象 ID 1609824847,索引 ID 1,分区 ID 72057607367819264,分配单元 ID 72057607569211392 (类型为 In-row data)。页 (1:297739) 缺少上一页 (1:178380) 对它的引用。可能是因为链链接有问题。
该错误已修复。
对象 \'tb_sum_status\' 的 324 页中有 19473 行。
CHECKTABLE 在表 \'tb_sum_status\' (对象 ID 1609824847)中发现 0 个分配错误和 3 个一致性错误。
CHECKTABLE 在表 \'tb_sum_status\' (对象 ID 1609824847)中修复了 0 个分配错误和 3 个一致性错误。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

--  作者:prcak47
--  发布时间:2011/11/17 10:41:33
--  
tbs_d_gds的 DBCC 结果。
修复: 页 (1:244425) 已从对象 ID 174883940,索引 ID 0,分区 ID 11461193891840,分配单元 ID 72057607711883264 (类型为 In-row data)释放。
修复: 已为数据库 \'enjoy_store\' 中的对象 \'dbo.tbs_d_gds, PK_tbs_d_gds\' 成功地重新生成了 Nonclustered 索引。
消息 8928,级别 16,状态 1,第 1 行
对象 ID 174883940,索引 ID 0,分区 ID 11461193891840,分配单元 ID 72057607711883264 (类型为 In-row data): 无法处理页 (1:244425)。有关详细信息,请参阅其他错误消息。
该错误已修复。
消息 8941,级别 16,状态 55,第 1 行
表错误: 对象 ID 174883940,索引 ID 0,分区 ID 11461193891840,分配单元 ID 72057607711883264 (类型为 In-row data),页 (1:244425)。测试(dbccAuditRecSucceeded == TRUE)失败。槽 2,偏移量 0x1063 无效。
该错误已修复。
消息 8945,级别 16,状态 1,第 1 行
表错误: 将重新生成对象 ID 174883940,索引 ID 3。
该错误已修复。
对象 \'tbs_d_gds\' 的 29316 页中有 360151 行。
CHECKTABLE 在表 \'tbs_d_gds\' (对象 ID 174883940)中发现 0 个分配错误和 2 个一致性错误。
CHECKTABLE 在表 \'tbs_d_gds\' (对象 ID 174883940)中修复了 0 个分配错误和 2 个一致性错误。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

--  作者:prcak47
--  发布时间:2011/12/7 14:50:43
--  
tb_card的 DBCC 结果。
修复: 已为数据库 \'enjoy_store\' 中的对象 \'dbo.tb_card\' 成功地重新生成了 Clustered 索引。
修复: 页 (1:83480) 已从对象 ID 2095398584,索引 ID 1,分区 ID 72057607340359680,分配单元 ID 72057607679639552 (类型为 In-row data)释放。
修复: 已为数据库 \'enjoy_store\' 中的对象 \'dbo.tb_card, in_card_cardname\' 成功地重新生成了 Nonclustered 索引。
修复: 已为数据库 \'enjoy_store\' 中的对象 \'dbo.tb_card, in_card_customer\' 成功地重新生成了 Nonclustered 索引。
修复: 已为数据库 \'enjoy_store\' 中的对象 \'dbo.tb_card, in_card_mid\' 成功地重新生成了 Nonclustered 索引。
消息 8945,级别 16,状态 1,第 1 行
表错误: 将重新生成对象 ID 2095398584,索引 ID 1。
该错误已修复。
消息 8928,级别 16,状态 1,第 1 行
对象 ID 2095398584,索引 ID 1,分区 ID 72057607340359680,分配单元 ID 72057607679639552 (类型为 In-row data): 无法处理页 (1:83480)。有关详细信息,请参阅其他错误消息。
该错误已修复。
消息 8941,级别 16,状态 55,第 1 行
表错误: 对象 ID 2095398584,索引 ID 1,分区 ID 72057607340359680,分配单元 ID 72057607679639552 (类型为 In-row data),页 (1:83480)。测试(dbccAuditRecSucceeded == TRUE)失败。槽 3,偏移量 0x31c 无效。
该错误已修复。
消息 8976,级别 16,状态 1,第 1 行
表错误: 对象 ID 2095398584,索引 ID 1,分区 ID 72057607340359680,分配单元 ID 72057607679639552 (类型为 In-row data)。在扫描过程中未发现页 (1:83480),但该页的父级 (1:1473) 和上一页 (1:503268) 都引用了它。请检查以前的错误消息。
该错误已修复。
消息 8978,级别 16,状态 1,第 1 行
表错误: 对象 ID 2095398584,索引 ID 1,分区 ID 72057607340359680,分配单元 ID 72057607679639552 (类型为 In-row data)。页 (1:503269) 缺少上一页 (1:83480) 对它的引用。可能是因为链链接有问题。
该错误已修复。
消息 8945,级别 16,状态 1,第 1 行
表错误: 将重新生成对象 ID 2095398584,索引 ID 2。
该错误已修复。
消息 8945,级别 16,状态 1,第 1 行
表错误: 将重新生成对象 ID 2095398584,索引 ID 3。
该错误已修复。
消息 8945,级别 16,状态 1,第 1 行
表错误: 将重新生成对象 ID 2095398584,索引 ID 4。
该错误已修复。
对象 \'tb_card\' 的 3877 页中有 116022 行。
CHECKTABLE 在表 \'tb_card\' (对象 ID 2095398584)中发现 0 个分配错误和 4 个一致性错误。
CHECKTABLE 在表 \'tb_card\' (对象 ID 2095398584)中修复了 0 个分配错误和 4 个一致性错误。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

--  作者:prcak47
--  发布时间:2011/12/7 15:25:40
--  
CHECKDB 在数据库 \'enjoy_store\' 中发现 0 个分配错误和 0 个一致性错误。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。