环境:
两台HP ML570 Linux AS4.5 Oracle 10g
两台Server做了Oracle的RAC,通过SAN Switch连接到HP MSA1000
故障现象:
因为其中一个Oracle rac node所在的机柜停电,导致两个rac node同时宕机,且Storage上mount的4个ocfs2分区的分区全部丢失(/dev/sda1变成了/dev/sda),无法mount,因此Oracle的服务也无法启动
故障分析及排除:
因客户DB资料没有备份,因此修复时非常小心
a.首先确定Storage在硬件及连通性上没有问题
b.确认os正常,且可以正常访问Storage
c.着手恢复丢失的分区表
因之前设定是的时候是由我来做的,所以对于分区的数量以及大小比较清楚,因此就按照上次的划分格式重新划分一次,目的是重建分区表,应该不会影响数据,因为客户没有备份,所以这个操作还是有很大风险的,但目前只能这么做了.
d.fdisk结束后,reboot server
奇迹出现了,数据还在,且服务启动正常
备注:世上没有绝对的事情,也没有百分之百的保险,虽然做了Oracle的RAC,但也只能保证两台Server的冗余,不能保证Storage的冗余,因此建议客户以后一定要做一个可行的备份策略,并按照其执行.
但还有一个问题,始终没有想明白,就是RAC的一个节点停电宕机,怎么会导致Storage上公用分区的分区表丢失呢?