love wife love life —Roger的Oracle/MySQL數據恢復博客

Phone:18180207355 提供專業Oracle/MySQL數據恢復、性能優化、遷移升級、緊急救援等服務

HAIP異常,導致RAC節點無法啟動的解決方案

本站文章除注明轉載外,均為本站原創: 轉載自love wife love life —Roger的Oracle/MySQL數據恢復博客

本文鏈接地址: HAIP異常,導致RAC節點無法啟動的解決方案

一個網友咨詢一個問題,他的11.2.0.2 RAC(for Aix),沒有安裝任何patch或PSU。其中一個節點重啟之后無法正常啟動,查看ocssd日志如下:

從上面的信息,很容易給人感覺是心跳的問題。這么理解也不錯,只是這里的心跳不是指的我們說理解的傳統的心跳網絡。我讓他在crs正常的一個節點查詢如下信息,我們就知道原因了,如下:

大家可以看到,這里心跳IP為什么是169網段呢?很明顯跟我們的/etc/hosts設置不匹配啊?why ?

這里我們要介紹下Oracle 11gR2 引入的HAIP特性,Oracle引入該特性的目的是為了通過自身的技術來實現心跳網絡的冗余,而不再依賴于第三方技術,比如Linux的bond等等。

在Oracle 11.2.0.2版本之前,如果使用了OS級別的心跳網卡綁定,那么Oracle仍然以OS綁定的為準。從11.2.0.2開始,如果沒有在OS層面進行心跳冗余的配置,那么Oracle自己的HAIP就啟用了。所以你雖然設置的192.168.1.100,然而實際上Oracle使用是169.254這個網段。關于這一點,大家可以去看下alert log,從該日志都能看出來,這里不多說。

我們可以看到,正常節點能看到如下的169網段的ip,問題節點確實看不到這個169的網段IP:

HAIP異常,導致RAC節點無法啟動的解決方案插圖

 

 

 

 

 

Oracle MOS提供了一種解決方案,如下:

crsctl start res ora.cluster_interconnect.haip -init

經過測試,使用root進行操作,也是不行的。針對HAIP的無法啟動,Oracle MOS文檔說通常是如下幾種情況:

1) 心跳網卡異常

2)?? 多播工作機制異常

3)防火墻等原因

4)Oracle bug

對于心跳網卡異常,如果只有一塊心跳網卡,那么ping其他的ip就可以進行驗證了,這一點很容易排除。

對于多播的問題,可以通過Oracle提供的mcasttest.pl腳本進行檢測(請參考Grid Infrastructure Startup During Patching, Install or Upgrade May Fail Due to Multicasting Requirement (ID 1212703.1),我這里的檢查結果如下:

雖然這里通過腳本檢查,發現對于230和224網段都是不通的,然而這不見得一定說明是多播的問題導致的。雖然我們查看ocssd.log,通過搜索mcast關鍵可以看到相關的信息。

實際上,我在自己的11.2.0.3 Linux RAC環境中測試,即使mcasttest.pl測試不通,也可以正常啟動CRS的。

由于網友這里是AIX,應該我就排除防火墻的問題了。因此最后懷疑Bug 9974223的可能性比較大。實際上,如果你去查詢HAIP的相關信息,你會發現該特性其實存在不少的Oracle bug。

其中 for knowns HAIP issues in 11gR2/12c Grid Infrastructure (1640865.1)就記錄12個HAIP相關的bug。

由于這里他的第1個節點無法操作,為了安全,是不能有太多的操作的。

對于HAIP,如果沒有使用多心跳網卡的情況下,我覺得完全是可以禁止掉的。但是昨天查MOS文檔,具體說不能disabled。最后測試發現其實是可以禁止掉的。如下是我的測試過程:

不過需要注意的是:當修改之后,兩個節點都必須要重啟CRS,否則僅僅重啟一個節點的CRS是不行的,ASM實例是無法啟動的。

對于HAIP異常,為什么會導致節點的CRS無法正常啟動呢?關于這一點,我們來看下該資源的屬性就知道了,如下:

可以看到,如果該資源有異常,現在gpnpd,cssd都是有問題的。

備注:實際上還可以通過在asm 層面指定cluster_interconnects來避免haip的問題。

One Response to “HAIP異常,導致RAC節點無法啟動的解決方案”

  1. zergduan Says:

    應該就是多播的問題,因為11.2.0.2是第一個HAIP的版本,僅僅是這個版本需要多播,從11.2.0.3開始已經放棄多播的方式來實現HAIP了,所以11.2.0.3上多播檢測不通可以使用HAIP是正常的,而11.2.0.2上必須保證多播檢測正常,否則肯定無法使用HAIP~

Leave a Reply

You must be logged in to post a comment.

百度彩票APP