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

盖国强 2019-05-08
14
0 0
摘要:当从系统访问文件时,出现"循环冗余检查",无法读取和复制文件,数据库也无法访问该文件,数据库使用受损,导致了严重的业务故障。

问题描述

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

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

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

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

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)就完成了数据恢复。

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

「喜欢文章,快来给作者赞赏墨值吧」

评论

0
0
Oracle
订阅
欢迎订阅Oracle频道,订阅之后可以获取最新资讯和更新通知。
墨值排行
今日本周综合
近期活动
全部
相关课程
全部