sky 的个人资料DBA日记照片日志列表更多 工具 帮助
2007/12/25

遭遇 Oracle 中国“最严重”故障

20号晚上,加完班刚到家,就接到了一个来自吉林的电话,说数据库起不来了。

据了解,数据库为920X,hp-ux,rac
据说是hpux突然找不到vg,然后hp的工程师又手工恢复了vg信息。

但是数据启动报错,提示ora-201,ora-202,ora-210的意思是控制文件和oracle不兼容
出现这个问题有两个原因:
1.compitible参数设置错误
2.控制文件损坏
尝试从spfile里面创建pfile,结果pfile为空。进一步判断spfile损坏了。
寻找建库时使用pfile,启用数据库,错误一样。分别使用不同的控制文件,也同样是这两个错误。

因为控制文件没有备份,好在alert是完整的,于是从alert里提取数据库的文件名称,手工创建controlfile,结果发现回滚表空间的数据文件无法加到控制文件中,用dbv验证,证实这两个文件已经损坏了。同时损坏的还有一些其他的数据文件。

去掉这些文件,创建控制文件成功,用新控制文件启动数据库,open数据库时,提示需要media recovery。因为回滚表空间已经坏了,media recovery已经变成了 mission impossible了。

因为控制文件和回滚表空间同时损坏,这个数据库要修复已经很难了。

能想到的就是加_corrupt_rollback_segments参数强制打开数据库,然后尝试exp数据了。

因为责任原因,这个操作负责这个系统的工程师不敢尝试。

最后oracle派了现场工程师,不过好像到目前未知,结论是一样的。现在正在搭建临时环境,恢复10月份的数据,并把故障库的裸设备进行备份,备份成功后,才能尝试强制打开数据库。

事已至此,已经没什么说的了。不过还是要从故障为什么发生中学到点什么吧。
这次故障,是由于没有给阵列划分zone,导致某厂家(dt)的技术人员在工作时,没有使用划分给他的磁盘,而使用了oravg的磁盘导致的。这个vg是oracle建库时使用的,redolog,unto、control、spfile、默认表空间等都在这个vg上。

据说这是oracle在国内遇到的最严重的一次故障......