eygle Eygle.
Backup&Recovery 2011-09-29

Oracle数据恢复:错误叠加导致灾难不可恢复

上周,有客户的数据库系统遭遇到了一次严重的灾难。主机访问不到硬盘,系统在本地硬盘残存了三个文件,其余文件存储于SSD构成的RAID组上,客户在出现问题后,草率的重构了RAID,导致了数据不可恢复;然后开发商介入恢复了2个月前的一个备份,又毫无心机的覆盖了没有备份残存的三个文件;最终结果的是无法恢复。

然后召集人马,开始重新补录数据。

这个故事的警戒之处在于
客户第一次找我的时候,我告诉他,把硬盘拿给我们,我们可以将其中的数据恢复出来。
第二天客户说,硬盘被格式化重做了系统。

客户第二次找我时,我说,把剩余的三个文件给我,我可以帮你挽救其中残存的有用数据。
第二天客户说,已经拿备份,把那三个文件刷新覆盖了。

这个故事给我们的警戒是:备份,备份,备份,再多一份也不算多;故障处理,再加一万个小心也不算多。

最初的一个简单故障,在层层错误之后,彻底不可挽回,这是多年来我见到最富有戏剧性的恢复案例。

看一看这个故障的信息,首先是一个写错误,Windows中比较典型和常见的存储访问错误:
Sat Sep 23 18:44:51 2011
KCF: write/open error block=0x35673a online=1
Sat Sep 23 18:44:51 2011
KCF: write/open error block=0x25eba4 online=1
     file=124 D:\DTA\PRODTA02.DBF
     error=27070 txt: 'OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 2) 系统找不到指定的文件。'

ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode
ORA-01114: IO error writing block to file 124 (block # 24856)
ORA-01110: data file 124: 'D:\DTA\PRODTA02.DBF'
ORA-27070: skgfdisp: async read/write failed
OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 2) 系统找不到指定的文件。

再然后,恢复使用了一个4月份的备份,又覆盖了挽救回来的文件:
Sun Sep 24 20:58:32 2011
The input backup piece G:\BCK\DB_T20110421_S111_P1 is in compressed format.

然后,就没有然后了。




By eygle 2011-09-29 08:12 评论 (6)
eygle
eygle

前Oracle ACE Director,云和恩墨创始人。技术为骨,历史为脉,人文为魂。

返回首页

6 Comments

这个DBA也确实该走,连备份都没做的DBA还配叫DBA嘛,纯粹混日子

生产库还是 NOARCHIVELOG mode 天灾? 人祸?

eygle,该用户使用的是什么存储,谢谢!

此次数据灾难,主要是策略不得当所致,在无序、混乱的机制下恢复数据,实在是自取灭亡。客户DBA在结剧中完全是个替罪羊!

故事的亮点是,eygle的最后那句话:然后,就没有然后了。