1、现象描述
一个RAC数据库,意外DOWN机后,第一个节点正常启动,但是第二个节点却无法启动ASM和CRS资源。
2、分析原因
由于ASM磁盘组无法启动,查看ASM日志发现如下信息:
MMNL started with pid=21,OS id=14028
lmon registered with NM -instance number 2 (internal mem no 1)
Tue Nov 18 14:48:50 2014
PMON (ospid:13986): terminating the instance due to error 481
Tue Nov 18 14:48:50 2014
System state dumprequested by (instance=2, osid=13986 (PMON)), summary=[abnormal instancetermination].
System State dumped totrace file /Oracle/product/grid/diag/asm/+asm/+ASM2/trace/+ASM2_diag_13996.trc
Tue Nov 18 14:48:50 2014
ORA-1092 :opitsk aborting process
Dumping diagnostic data indirectory=[cdmp_20141118144850], requested by (instance=2, osid=13986 (PMON)),summary=[abnormal instance termination].
Tue Nov 18 14:48:50 2014
ORA-1092 : opitsk abortingprocess
Instance terminated byPMON, pid = 13986
在Metalink网站上,发现一篇文档ASM onNon First Node (Second or Other Node) Fails to Come up With: PMON (ospid:nnnn): terminating the instance due to error 481 [ID 1383737.1]。依据该文档得知,ASM的alert日志错误信息中“PMON(ospid: 9946): terminating the instance due to error 481”文档的标题是一致。根据文档的内容进一步检查相关日志及配置信息,发现ASM TRACE也如文档一致。如下:
*** 2014-11-18 14:48:17.092
Reconfiguration completes [incarn=42]
kjzdattdlm: Can not attach to DLM (LMONup=[TRUE], DB mounted=[FALSE]).
通过分析集群日志发现如下信息:
2014-11-18 14:44:45.767
[/oracle/product/11.2.0/grid/bin/orarootagent.bin(12690)]CRS-5018:(:CLSN00037:)Removed unused HAIP route: 169.254.95.0/ 255.255.255.0 / 0.0.0.0 / usb0
说明ORACLE认为usb0(主机管理口网卡,默认开启)占用了HAIP(ORACLE 11G新特性,内部的高可用私有IP,通过HAIP替换两个节点的私有IP,来进行内部通讯)。
通过分析主机日志发现如下信息:
Nov 18 14:02:11 XXXdb2 dhclient:DHCPREQUEST on usb0 to 255.255.255.255 port 67
Nov 18 14:02:12 XXXdb2 dhclient:DHCPACK from 169.254.95.118
Nov 18 14:02:12 XXXdb2 dhclient: boundto 169.254.95.120 -- renewal in 234 seconds.
说明主机网卡USB0在动态获取169.254.XX.XX网段的IP地址。
IBM的PC服务器使用USB0做为管理网络的特性。没有连接USB0网卡的时候会不停向DHCP申请IP,如果没有发现DHCP时就会默认分配一个169.254.xxx.xxx的IP地址会和ORACLE的HAIP产生冲突,造成路由信息丢失
通过各种日志信息与文档中的信息的对比,得知此次的故障现象与文档中的故障现象是一致的。
3、解决方法
根据文档ID 1383737.1提供的内容,使用ifdown usb0关闭两个节点的usb0网卡后,在缺失路由信息的一节点动态添加路由信息
#route add -net 169.254.0.0 netmask 255.255.0.0 dev eth2
增加路由之后,在数据库的第二节点,通过命令
#su - grid
$GRID_HOME/bin/crsctl start res ora.crsd -init
正常启动crsd资源后,asm和crsd资源全部正常启动。
4、故障总结
IBM 的x3850 x5系列的PC Server存在USB开启dhcp功能,从而导致usb网卡可能占用HAIP的缺陷,生产环境中的此类机器上运行的RAC数据库环境,需要关闭USB0的自动获取dhcp功能,给USB0配置静态IP。
5 、相关参考
ASM on Non First Node (Second or Other Node) Fails to Come up With:PMON (ospid: nnnn): terminating the instance due to error 481 [ID 1383737.1]
如何修改ASM的sys密码
如何将ASM中的数据文件复制到操作系统中
Oracle 11g RAC ASM磁盘全部丢失后的恢复
Oracle 11g从入门到精通 PDF+光盘源代码
RHEL6 ASM方式安装Oracle 11g R2
Oracle 10g 手工创建ASM数据库
Ubuntu 12.04(amd64)安装完Oracle 11gR2后各种问题解决方法
如何修改Oracle 10g ASM的sys密码
: