Oracle Haip無法啟動問題學習

語言: CN / TW / HK

一、目標:Oracle Haip 啟動報錯

需求:日常運維過程中,已經遇到兩次由於HAIP引發的問題,特此進行記錄。

本次問題是看著大佬-李海清操作,整完了記錄一下,上一次HAIP折騰了4個小時。

Oracle Haip是給Oracle 提供私網的高可用,存在多個私網網絡卡的情況下,會有多個HAIP,這樣某個私網網絡卡down,並不影響整個RAC叢集的通訊。

二、HAIP啟動失敗排查思路

可能性很多,那麼怎麼排查定位問題。

參考

https://blog.csdn.net/m0_38048955/article/details/115345414
https://www.cnblogs.com/jyzhao/p/7686243.html

1) 心跳網絡卡異常
2)  多播工作機制異常
3)  防火牆等原因
4)  Oracle bug
問題時間出現在初始化安裝、日常維護,這樣容易找到差異點。

三、HAIP案例

3.1 網路策略導致HAIP 無法通訊

這個之前發過部落格

https://www.cnblogs.com/lvcha001/p/12155042.html

小結一下:
1.安裝11g R2 RAC時,節點1安裝GI沒問題,HAIP可以啟動;
2.安裝節點2GI時,HAIP啟動失敗;
3.通過上述情況基本可以定位為兩個節點的HAIP無法通訊
4.通過ping 判斷節點1->節點2 haip網路不通;
5.客戶網路工程師確認無法開通HAIP


原文連結:https://blog.csdn.net/evils798/article/details/27248263

操作,為私網配置閘道器,重啟網路服務,重新安裝(建議可以嘗試上述連結,指定IP的網絡卡路由)

    重新配置私網閘道器地址之後,重新安裝RAC ,再次執行root.sh 報錯,本次169.254 的Oracle haip地址使用的是eth1的私網網絡卡地址,但是發現

 節點1無法ping通節點2的haip地址。

ASM on Non-First Node (Second or Others) Fails to Start: PMON (ospid: nnnn): terminating the instance due to error 481 (Doc ID 1383737.1)

並且,grid$sqlplus / as sysasm

SQL>startup 報錯如上述,還是私網HAIP不通的問題。

Case5. HAIP is up on all nodes and route info is presented but HAIP is not pingable
Symptom:
HAIP is presented on both nodes and route information is also presented, but both nodes can not ping or traceroute against the other node HAIP.

······

Solution: 

For Openstack Cloud implementation, engage system admin to create another neutron port to map link-local traffic. For other environment, 
engage SysAdmin/NetworkAdmin to review routing/network setup.

解決方案是讓網路工程師調整,但是雲廠商很難具體開通HAIP之間的連線。

本次選擇禁用HAIP 服務,達到雲環境安裝目的。

3.2 AIX環境更換私網網絡卡後bpf device裝置未更新導致Haip服務啟動失敗

問題表象,RAC 11.2.0.4 正常使用,增加新的私網網絡卡後,刪除原來的私網網絡卡後,重啟叢集CRS. haip 節點1啟動失敗,此時節點2叢集出於關閉狀態,不存在網路互動的問題。
手工啟動haip服務
crsctl start res ora.cluster_interconnect.haip -init
 啟動失敗,觀察日誌,匹配如下MOS bug ,oracle bug建議使用root 執行命令進行重新整理!重新整理後,問題解決。

已知問題:Grid Infrastructure Redundant Interconnect 和 ora.cluster_interconnect.haip(文件 ID 1640865.1)    
2012-04-21 12:36:43.951: [ USRTHRD][2572] {0:0:2} (null) category: -2, operation: SETIF, loc: bpfopen:21,o, OS error: 6, other: dev /dev/bpf0, ifr en2  
Solution/Workaround:
It's known on AIX and Solaris that command executed via sudo etc may not have full root environment, which could cause HAIP startup failure.
The solution is to obtain and apply patch 16445624 on AIX.
The workaround is to execute root script (root.sh or rootupgrade.sh) as real root user directly.
If root script already failed, try one or all of the following:
 - reboot the node
 - execute "/usr/sbin/tcpdump -D" as root user, if the timestamp of the bpf device didn't get updated, delete the device and re-run the same "tcpdump -D" command
Before re-running root script, verify whether the following exists and the timestamp is updated
ls -ltr /dev/bpf*
cr--------   1 root     system       42,  0 Oct 03 10:32 /dev/bpf0
..

Grid Infrastructure Redundant Interconnect 和 ora.cluster_interconnect.haip(文件 ID 1210883.1)    
https://blog.csdn.net/m0_38048955/article/details/115345414
對於心跳網絡卡異常,如果只有一塊心跳網絡卡,那麼ping其他的ip就可以進行驗證了,這一點很容易排除。
對於多播的問題,可以通過Oracle提供的mcasttest.pl指令碼進行檢測(請參考Grid Infrastructure Startup During Patching, Install or Upgrade May Fail 
Due to Multicasting Requirement (ID 1212703.1)