Linux下Oracle RAC一个节点宕机导致共享存储无法挂载的故障排除


环境:

两台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上公用分区的分区表丢失呢?

相关内容