10G 11GR1 通過設定DIAGWAIT值使得RAC中節點被驅逐的時候能夠記錄更多的診斷日誌

datapeng發表於2014-03-04

通過設定DIAGWAIT值使得RAC中節點被驅逐的時候能夠記錄更多的診斷日誌 

很多時候RAC中的節點當機的時候,因為CPU或者磁碟等資源的繁忙或者其他問題,導致緩衝區中的日誌還沒有被寫入磁碟上的日誌中,節點就已經被重啟,給故障診斷帶來一定的麻煩,通過適當設定DIAGWAIT的值,使得節點被驅逐到真正OS REBOOT之間的時間適當延長,則可以記錄更多有幫助的日誌資訊。具體操作過程如下(摘自METALINK:559365.1)


11gR2之前版本的叢集,將Diagwait設定為13。


從本質上講, diagwait值在RAC環境中控制著兩件關鍵的事情:

  • 預設情況下,叢集守護程式OPROCD的超時值為1秒和0.5秒的時間差,這意味著,如果OPROCD不能在1.5秒內返回,系統會被重啟。設定diagwait為推薦值13會將OPROCD的預設超時時差增加到10秒(diagwait - CSS重啟時間[預設為3秒]),從而防止大量由於OPROCD沒有在定義的時間內返回而導致的'假'的節點重啟。對於繁忙的系統,1.5秒的預設值太小了。長期推薦的辦法是將OPROCD超時提高到一個更為合理的值11秒(1秒休眠時間+10秒時間差)。

  • 當節點驅逐/重啟事件發生時,增加diagwait,我們更可能在重新啟動之前將日誌資訊重新整理到磁碟,因此,縮短尋找問題根本原因時間。


從11g第2版(11.2.0.1和更高版本)開始,這一變化不再是必要的。然而,對於之前的版本,這個改變必須在一個完整的停機時間進行,而且這個值不能通過補丁修正。因此,必須安排停機時間手動修改。鑑於已知通過設定diagwait解決的問題的數量,申請停機時間來修改它是值得的投入。請注意,因為這個值儲存在Oracle叢集登錄檔(OCR),如果您的確需要重建OCR或從一個之前的備份恢復,您可能需要重新設定diagwai。檢查當前值可以通過以下簡單的命令:

(詳見使用 Diagwait 診斷 Oracle Clusterware 節點驅逐的更多資訊 (文件 ID 1525761.1)


[@more@]1、停止所有節點的CRS
#crsctl stop crs

2.停止10.2.0.3到11.1.0.6版本的RAC中才引入的OPROCD程式
#/bin/oprocd stop

3、檢查是否還有CRS相關的程式在執行
ps -ef |egrep "crsd.bin|ocssd.bin|evmd.bin|oprocd"

4、在任意一個節點使用ROOT使用者來設定DIAGWAIT的值(按照ORACLE的推薦,一般設定為13)
#crsctl set css diagwait 13 -force

5、啟動所有節點的CRS
#crsctl start crs

6、驗證所有的CRS已經正常執行
#crsctl check crs

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

相關文章