联系:手机/微信(+86 17813235971) QQ(107644445)
标题:sql数据库备份失败—失败: 23(数据错误(循环冗余检查)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
从这个报错看,比较明显是由于底层(文件系统损坏或者扇区访问异常导致),进一步查看系统事件确认是由于扇区异常导致(设备\Device\HarddiskO\DR0有一个不正确的区块)

对于这种情况,当访问到文件所在的损坏扇区位置,就会报io错误,终止访问,文件也无法直接拷贝.通过专业工具对文件进行拷贝恢复确认一些扇区损坏而且被跳过(这部分数据肯定丢失)

由于文件本身跳过了损坏的扇区,需要确认损坏的部分影响哪些对象和哪些类型的损坏,通过DBCC检测出来异常信息如下
消息 8976,级别 16,状态 1,第 1 行 表错误: 对象 ID 1478296326,索引 ID 70,分区 ID 72057594244038656,分配单元 ID 72057594277527552 (类型为 In-row data)。在扫描过程中未发现页 (1:1577857),但该页的父级 (1:87825) 和上一页 (1:1576364) 都引用了它。请检查以前的错误消息。 消息 8978,级别 16,状态 1,第 1 行 表错误: 对象 ID 1478296326,索引 ID 70,分区 ID 72057594244038656,分配单元 ID 72057594277527552 (类型为 In-row data)。页 (1:1577859) 缺少上一页 (1:1577857) 对它的引用。可能是链链接有问题。 消息 8939,级别 16,状态 98,第 1 行 表错误: 对象 ID 1478296326,索引 ID 70,分区 ID 72057594244038656,分配单元 ID 72057594277527552 (类型为 In-row data),页 (1:1577857)。测试(IS_OFF (BUF_IOERR, pBUF->bstat))失败。值为 133129 和 -4。 消息 8928,级别 16,状态 1,第 1 行 对象 ID 1478296326,索引 ID 70,分区 ID 72057594244038656,分配单元 ID 72057594277527552 (类型为 In-row data): 无法处理页 (1:1577857)。有关详细信息,请参阅其他错误消息。 消息 8939,级别 16,状态 98,第 1 行 表错误: 对象 ID 2005582183,索引 ID 66,分区 ID 72057594242859008,分配单元 ID 72057594276347904 (类型为 In-row data),页 (1:385339)。测试(IS_OFF (BUF_IOERR, pBUF->bstat))失败。值为 133129 和 -4。 消息 8928,级别 16,状态 1,第 1 行 对象 ID 2005582183,索引 ID 66,分区 ID 72057594242859008,分配单元 ID 72057594276347904 (类型为 In-row data): 无法处理页 (1:385339)。有关详细信息,请参阅其他错误消息。 消息 8976,级别 16,状态 1,第 1 行 表错误: 对象 ID 2005582183,索引 ID 66,分区 ID 72057594242859008,分配单元 ID 72057594276347904 (类型为 In-row data)。在扫描过程中未发现页 (1:385339),但该页的父级 (1:127857) 和上一页 (1:385338) 都引用了它。请检查以前的错误消息。 消息 8978,级别 16,状态 1,第 1 行 表错误: 对象 ID 2005582183,索引 ID 66,分区 ID 72057594242859008,分配单元 ID 72057594276347904 (类型为 In-row data)。页 (1:1682744) 缺少上一页 (1:385339) 对它的引用。可能是链链接有问题。
然后通过DBCC进行修复,修复成功提示如下
修复: 已为数据库 'myhis' 中的对象 'dbo.h_xxxxx, idx_xxxxx_ckdmx_id' 成功地重新生成了 Nonclustered 索引。 修复: 页 (1:1577857) 已从对象 ID 1478296326,索引 ID 70,分区 ID 72057594244038656,分配单元 ID 72057594277527552 (类型为 In-row data)释放。 消息 8945,级别 16,状态 1,第 6 行 表错误: 将重新生成对象 ID 1478296326,索引 ID 70。 该错误已修复。 消息 8928,级别 16,状态 1,第 6 行 对象 ID 1478296326,索引 ID 70,分区 ID 72057594244038656,分配单元 ID 72057594277527552 (类型为 In-row data): 无法处理页 (1:1577857)。有关详细信息,请参阅其他错误消息。 该错误已修复。 消息 8939,级别 16,状态 98,第 6 行 表错误: 对象 ID 1478296326,索引 ID 70,分区 ID 72057594244038656,分配单元 ID 72057594277527552 (类型为 In-row data),页 (1:1577857)。测试(IS_OFF (BUF_IOERR, pBUF->bstat))失败。值为 2057 和 -4。 该错误已修复。 消息 8976,级别 16,状态 1,第 6 行 表错误: 对象 ID 1478296326,索引 ID 70,分区 ID 72057594244038656,分配单元 ID 72057594277527552 (类型为 In-row data)。在扫描过程中未发现页 (1:1577857),但该页的父级 (1:87825) 和上一页 (1:1576364) 都引用了它。请检查以前的错误消息。 该错误已修复。 消息 8978,级别 16,状态 1,第 6 行 表错误: 对象 ID 1478296326,索引 ID 70,分区 ID 72057594244038656,分配单元 ID 72057594277527552 (类型为 In-row data)。页 (1:1577859) 缺少上一页 (1:1577857) 对它的引用。可能是链链接有问题。 该错误已修复。 对象 'h_zysfdmx' 的 365541 页中有 2705291 行。 CHECKDB 在表 'h_xxxxx' (对象 ID 1478296326)中发现 0 个分配错误和 4 个一致性错误。 CHECKDB 在表 'h_xxxxx' (对象 ID 1478296326)中修复了 0 个分配错误和 4 个一致性错误。 修复: 已为数据库 'myhis' 中的对象 'dbo.h_xxx, idx_xxx_ckdmx_id' 成功地重新生成了 Nonclustered 索引。 修复: 页 (1:385339) 已从对象 ID 2005582183,索引 ID 66,分区 ID 72057594242859008,分配单元 ID 72057594276347904 (类型为 In-row data)释放。 消息 8945,级别 16,状态 1,第 6 行 表错误: 将重新生成对象 ID 2005582183,索引 ID 66。 该错误已修复。 消息 8928,级别 16,状态 1,第 6 行 对象 ID 2005582183,索引 ID 66,分区 ID 72057594242859008,分配单元 ID 72057594276347904 (类型为 In-row data): 无法处理页 (1:385339)。有关详细信息,请参阅其他错误消息。 该错误已修复。 消息 8939,级别 16,状态 98,第 6 行 表错误: 对象 ID 2005582183,索引 ID 66,分区 ID 72057594242859008,分配单元 ID 72057594276347904 (类型为 In-row data),页 (1:385339)。测试(IS_OFF (BUF_IOERR, pBUF->bstat))失败。值为 2057 和 -4。 该错误已修复。 消息 8976,级别 16,状态 1,第 6 行 表错误: 对象 ID 2005582183,索引 ID 66,分区 ID 72057594242859008,分配单元 ID 72057594276347904 (类型为 In-row data)。在扫描过程中未发现页 (1:385339),但该页的父级 (1:127857) 和上一页 (1:385338) 都引用了它。请检查以前的错误消息。 该错误已修复。 消息 8978,级别 16,状态 1,第 6 行 表错误: 对象 ID 2005582183,索引 ID 66,分区 ID 72057594242859008,分配单元 ID 72057594276347904 (类型为 In-row data)。页 (1:1682744) 缺少上一页 (1:385339) 对它的引用。可能是链链接有问题。 该错误已修复。 对象 'h_sfdmx' 的 1226 页中有 10928 行。 CHECKDB 在表 'h_xxx' (对象 ID 2005582183)中发现 0 个分配错误和 4 个一致性错误。 CHECKDB 在表 'h_xxx' (对象 ID 2005582183)中修复了 0 个分配错误和 4 个一致性错误。
再次使用DBCC检查数据库,一切正常,没有其他报错.然后在恢复过程中ldf文件也有大量扇区异常,对ldf文件进行截断处理
ALTER DATABASE MYHIS SET RECOVERY SIMPLE; DBCC SHRINKFILE (MYHIS_log, 0); ALTER DATABASE MYHIS SET RECOVERY FULL;