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

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

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注