eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 父亲节的礼物 | Blog首页 | 诊断案例:PMON failed acquire latch QMNC Holder »

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

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

参考链接:
http://www.eygle.com/archives/2011/06/oracle_fileheader_scn.html




历史上的今天...
    >> 2013-06-21文章:
    >> 2007-06-21文章:
    >> 2006-06-21文章:

无觅

By eygle on 2011-06-21 08:25 | Comments (0) | Backup&Recovery | 2817 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com