暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle数据恢复:文件 数据错误(循环冗余检查) 解决

原创 盖国强 2019-05-08
1143

问题描述

如果我问你:数据系统最担心的情况是什么?
我的答案大约是:硬件(硬盘)故障。   ---因为通常硬件故障无可避免,必然发生,而且不可逆转。

那么最悲惨的情况是什么?
我说:莫过于在发生硬件故障之后,发现没有数据备份。

以上这些情形在现实中屡见不鲜。

前一段在某客户的系统中,就遇到了硬盘故障导致的数据库问题,仅仅是一个扇区损坏,碰巧位于数据文件上,就导致了如下错误:

Mon Jun 13 09:14:10 2011
Errors in file f:\oracle\admin\yydb\udump\yydb1_ora_3960.trc:
ORA-01110: 数据文件 11: 'F:\ORACLE\ORADATA\YYDB\NDNS001.ORA'
ORA-01115: 从文件 11 读取块时出现 IO 错误 (块 # 1)
ORA-27070: skgfdisp: 异步读取/写入失败
OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 23) 数据错误(循环冗余检查)。
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'F:\ORACLE\ORADATA\YYDB\SYSTEM01.DBF'

当从系统访问文件时,出现"循环冗余检查",无法读取和复制文件,数据库也无法访问该文件,数据库使用受损,导致了严重的业务故障。

专家解答

在这种情况下,通常的手段就无能为力了,然后我们可以通过DD等工具,将该文件完好的部分DD出来,还原成一个独立的文件或文件碎片,然后修复该文件,可以完成数据恢复。

在这个案例中,坏块位于数据文件头部,我们复制了其他部分之后,使用BBED修复了数据文件头块(Header Block)就完成了数据恢复。

这是一则非常幸运的恢复,但是事故总是警告我们:备份不可一日或缺。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论