使用 Diagwait 作為診斷工具,獲取用於診斷 Oracle Clusterware 節點驅逐

tianya_2011發表於2015-05-01
症狀:
出現以下情況時,Oracle Clusterware 會驅逐群集中的節點
    節點未透過網路心跳進行 ping 操作
    節點未 ping 表決磁碟
    節點被掛起/忙碌,因此無法執行任何一個之前的任務

    在大多數情況下,當節點被驅逐時,會有資訊寫入日誌,用於分析節點驅逐的原因。但是,在某些情況下可能缺少這一步,本文介紹的步驟適合以下這些情況:在 11gR2 (11.2.0.1) 之前的 Clusterware 版本中,沒有足夠的資訊或沒有資訊可用於分析節點驅逐的原因。

原因:
    節點被驅逐以及節點因 CPU(或 CPU 不足)而變得異常繁忙時,可能會造成作業系統沒有時間將日誌/跟蹤資訊重新整理到檔案系統中。一種有用的方法是設定 diagwait 屬性,以延遲節點重新啟動,給作業系統足夠的時間寫入跟蹤資訊。設定 diagwait 後,Clusterware 將在重新啟動之前再等待 10 秒 (Diagwait - reboottime),以便在不增加資料損壞的可能前提下,安全的蒐集診斷資料。客戶在修正作業系統排程問題後,可以按照下文介紹的步驟取消 diagwait的設定。

   Diagwait 屬性在 10.2.0.3 被推出,已經包含 10.2.0.4 & 11.1.0.6 以及更高的版本中。 大多數平臺的 10.1.0.5 版本也已經包含。 這意味著您可以在 10.1.0.5 (及更高), 10.2.0.3 (及更高) 和 11.1.0.6 (及更高) 版本中設定 diagwait。 如果 crsctl set/get css diagwait 命令返回 "unrecognized parameter diagwait specified"  這說明Clusterware 版本不能實施 diagwait。 請您在設定diagwait前打上對應的 patchset。

解決方案:
更改 diagwait 時務必關閉所有節點上的 clusterware 軟體。下面是設定 diagwait 的分步說明。
1,以root使用者的身份執行
    #crsctl stop crs 
    #/bin/oprocd stop,
2,執行以下命令,確保關閉所有節點上的 Clusterware 軟體

    #ps -ef |egrep "crsd.bin|ocssd.bin|evmd.bin|oprocd"
這步應該不會返回任何程式。如果在 clusterware 執行時繼續執行下一步驟,可能會損壞 OCR。在關閉群集所有節點上的 clusterware 軟體前,不要繼續操作。
3,在群集的一個節點上,透過root使用者發出以下命令,可將“diagwait”引數的值改為 13 秒:
    #crsctl set css diagwait 13 -force
4,執行以下命令,檢查是否已成功設定 diagwait。該命令應返回 13。如果未設定 diagwait,將返回訊息“Configuration parameter diagwait is not defined”。
    #crsctl get css diagwait
5,在叢集所有的節點上執行以下命令,重新啟動Clusterware 軟體:
    #crsctl start crs
6,在所有節點執行以下命令,驗證Clusterware 是否正常執行:
    #crsctl check crs

取消設定/刪除 diagwait
    客戶在修正作業系統排程問題前,不應取消diagwait設定,因為這樣可能會導致出現節點驅逐的情況。Diagwait 會將節點驅逐(和重新配置)延遲 diagwait (13) 秒,這種配置不會影響大多數客戶。如果需要移除 diagwait,則應按照上述步驟操作,其中步驟 3 需用以下命令替代
#crsctl unset css diagwait -force 

(注意:在取消設定 diagwait 時,必須使用 -force 選項,因為執行取消設定操作時 Clusterware 已經關閉)

參考:(文件 ID 1525761.1)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25373498/viewspace-1616555/,如需轉載,請註明出處,否則將追究法律責任。

相關文章