平台:2 nodes
oracle 1og RAC +HACMP5 +AIX 5.3+ASM
3块网卡,每个网卡2个网口:
网卡1:en0:public IP
en1:未配置
网卡2:en2:HA private ip 就是ha的心跳网口
en3:未配置
网卡3:en4:RAC 心跳网口
en5:none
其中网卡3是HEA (集成了虚拟技术的集成网卡),该网卡会经常自动关闭,开启,(后来经过咨询ibm工程师才发现这是hea网卡的特性,心跳端口或者业务端口不建议配置在这个网口)经常会有 “HEA PORT DOWN/UP”的错误提示(errp -d H),然后就是node2 被无情的驱逐并重启。这种现象不定期发生。经常中断的是node1的网卡,相同配置node2的网卡几乎没有这种现象,但是被驱逐的大部分都是node1.
发现了这是网卡问题之后想到如下几种解决办法:
1、停一台启动一台,由双活变成主备,稳定性提高了,但是安全级别降低了,不太甘心;
2、升级hea网口的微码,尝试将该网卡变的稳定,但是经过咨询这种方法并不一定有效果,而且风险很大,容易导致网卡无法使用;
3、修改RAC 心跳的阀值参数 misscount(MC),将它变得大一些,使网卡中断时,延长RAC心跳包的等待时机,比如原本MC=30秒,也就是心跳网络如果30s不通,RAC就要驱逐节点,如今我把它修改成 201秒,这样在不过201s的某个时间段内HEA网卡恢复了,心跳包就能够有响应,从而降低节点驱逐的频率;
4、修改RAC心跳端口(理论上就不应该把心跳线接在HEA卡上,无论是ha心跳还是RAC心跳);同一个网卡上的不同端口经过咨询貌似可以用于不同用途,比如可以分别是public ip和private ip,ha ip 和RAC private ip。
我显示尝试了第四种4方法,结果虽然没成功,但是过程肯定是没问题,修改成功,两个节点都能分别启动,只是心跳不通,只是RAC心跳包 互相ping不通(或者aix系统层面有些操作没做)。过程如下:
备份ocr 的信息:(在两个node上都执行)
crsctl stop crs(两节点都要执行,执行完一个在执行另一个,然后继续)
ps -ef |grep d.bin (查看crs进程是否已经停掉)
切换到root ,两个节点分别执行ocrconfig -export /backup/ocr.exp
ls -l /backup/ocr* 确定备份ocr成功
备份voting disk的信息:两天机器都执行
dd if=/dev/rlv_vote1 of=/backup/rlv_vote1.dmp block