周一对客户redhat2.1上oracle9204做例行检查,发现rman备份日志中报告数据文件中有坏块,导致备份失败,不敢怠慢,今天到现场解决、分析坏块问题,恢复备份机制……
1.首先检查dba_extents发现损坏的数据文件属于索引表空间,所以立马把这个文件上的所有索引重建了一回……
2.运行rman备份脚本,原来的数据文件顺利通过,但又有新的corruption出现,而且——使用dbv发现坏的数据块明显不是存储的数据,没有办法,把数据文件resize至原来一半,问题解决。
3. 再次运行rman脚本,成功。
这时,我决定run rman脚本again,靠! 问题出来了,刚才所有文件都好好的备份成功了,现在又有一个数据文件发现坏块……
4. 使用rman的blockrecover功能恢复坏块成功。
此时我判断这一定是操作系统或者linux的bug所致,搜索metalink,果然有所发现:doc id : note:241820.1
The information in this article applies to: Red Hat Linux Advanced Server 2.1 kernel-2.4.9-e.Xenterprise (where X is lower than 24) Oracle RDBMS Server. Symptom(s) ~~~~~~~~~~ Two potential data corruption scenarios have been identified. These scenarios can occur under heavy, complex I/O loads. The first scenario only