事件:
某政府客户一套核心管理系统运行多年,该数据库采用9I RAC架构来搭建的,集群软件采用HP serviceguard来管理,数据文件存储在raw设备上。前段时间由于1号机出现硬件异常,操作系统一直在尝试启动,但最终都是启动失败,而此时数据库也无法访问,为保证前台应用能够正常访问数据库,
解决方案:
了解了当前情况,我们给客户提供的方案是先对节点1进行关机,然后在2号机上启动数据库,保证应用能正常运行。后续等HP工程师分析并解决掉节点1硬件故障后再恢复RAC。
具体操作步骤:
检查数据库运行日志alert日志,发现数据库无法mount.经过分析得出以下结论
由于数据库是通过集群软件serviceguard来统一管理的,而此时集群在2号节点上的状态都是Unknow状态,因此首先需要集群软件能够在2号机上正常启动,然后再来open数据库。
通过serviceguard工具管理命令在2号机上来强制启动集群:
#cmruncl -n his_s1(用root用户执行)
通过serviceguard工具提供的命令在2号机上来检查集群启动后的的状态:
可以看出,此时集群cluster1的状态变成up. 节点his_s1的状态为running
最后我们只需要将数据库正常OPEN就行了,
#su – oracle
$export ORACLE_SID=SIH2
$sqlplus/nolog
SQL>conn /as sysdba
SQL>shutdown immediate
SQL>startup
数据库启动成功,应用可以正常访问了。
总结:
由于该套系统设备的老化,硬件故障在这套系统上已经出现过多次了,去年就帮忙处理过3次,均是由于硬件故障导致的。鉴于该套核心系统的重要性,我们给客户提出了系统整改建议,包含以下几点:
1) 采购新的小型机,替换老服务器
2) 数据库升级到11gR2来搭建RAC
3)
4) 采用oracle 集群来取代HP serviceguard
5) 完善数据库备份机制和容灾机制。
最后恭喜MEMA在2014年2月份成功中标该整改项目的规划和实施。