一、现象
AIX小机上的主机柜正常(HBA卡在上面),扩展机柜电源异常(私网网卡在上面),导致节点1主机不可用。
节点1扩展柜上网卡故障后,节点1和节点2私网不可通信,但节点1服务器的HBA卡在主柜上,HBA卡仍然保持加电状态,集群与存储的链路还处于连接状态,所以投票盘识别两节点的链路都为正常状态,导致无法将节点1从集群中彻底驱逐,而节点2重复配置,导致节点2异常。
目前节点1主机无法ping通,节点2上集群部分服务无法启动。
二、处置
1、将节点1主机上的网络(包括光纤网络)彻底断开,并重启节点2集群服务。
./crsctl stop crs -f
./crsctl start crs
节点2集群和数据库已恢复。
2、维保厂家协调电源备件,替换故障电源后,节点1主机恢复。
逐步恢复节点1上的私网、公网和存储网络后,主机检查正常。
3、开始拉起节点1上的集群,但asm实例无法启动,详细报错如下:
No connectivity to other instances in the cluster during startup.
Hence, LMON is terminating the instance. Please check the LMON trace file for details.
Also, please check the network logs of this instance along with clusterwide network health for problems and then re-start this instance.
节点1上的asm实例频繁自动重启,但集群无法启动。
4、通过上述日志发现应该为网络通信异常,排查发现两个节点私网和公网均是正常状态,且可以正常通信和正常ssh切换。
5、由于节点1目前属于未正常启动状态,使用crsctl stat res -t -init
发现节点1的ora.cluster_interconnect.haip状态是online的,立即查看节点2(正常集群)该资源的状态,为offline,如下图:
6、通过以上分析节点1上的使用haip生成的169地址进行私网通信,而节点2则未使用,因此无法通信。而默认ora.cluster_interconnect.haip资源是设置成自动启动的,只是上次启动集群的时候没有随集群启动(可能是私网不通的原因)。
7、解决方法
(1)、重启节点1和节点2集群,自动拉起ora.cluster_interconnect.haip让两个节点分配集群间通信ip地址。
(2)、为了不让节点2影响正常业务,通过分节点关闭HAIP的方式起动集群。关闭节点1的HAIP
crsctl stop crs -f
crsctl start crs -excl -nocrs
crsctl stop res ora.asm -init
crsctl modify res ora.cluster_interconnect.haip -attr "ENABLED=0" -init
crsctl modify res ora.asm -attr "START_DEPENDENCIES='hard(ora.cssd,ora.ctssd)pullup(ora.cssd,ora.ctssd)weak(ora.drivers.acfs)',STOP_DEPENDENCIES='hard(intermediate:ora.cssd)'" -init
crsctl stop crs
起动节点1的crs,业务可连接到节点1的数据库。
crsctl start crs
关闭节点2的HAIP,并重启节点2集群。步骤如节点1。
至此问题解决。
8、总结
建议集群安装的时候关闭HAIP。