ORACLE RAC環境下節點自動重啟問題總結
文章參考:主要來源於網路資源分享,並結合自己的ORACLE RAC環境近段時間OS節點自動重啟問題進行分析總結
首先我們對能夠導致節點重啟的CRS程式進行介紹。
1.ocssd : 它的主要功能是節點監控(Node Monitoring)和組管理(Group Management),它是CRS的核心程式之一。節點監控是指監控叢集中節點的健康狀況,監控的方法是通過網路心跳(network heartbeat)和磁碟心跳(disk heartbeat)實現的,如果叢集中的節點連續丟失磁碟心跳或網路心跳,該節點就會被從叢集中驅逐,也就是節點重啟。組管理導致的節點重啟,我們稱之為node kill escalation(只有在11gR1以及以上版本適用)。重啟需要在指定的時間(reboot time,一般為3秒)內完成。
網路心跳:ocssd.bin程式每秒鐘向叢集中的各個節點通過私網傳送網路心跳資訊,以確認各個節點是否正常。如果某個節點連續丟失網路心跳達到閥值,misscount(預設為30秒,如果存在其他叢集管理軟體則為600秒),叢集會通過表決盤進行投票,使丟失網路心跳的節點被主節點驅逐出叢集,即節點重啟。如果叢集只包含2個節點,則會出現腦裂,結果是節點號小的節點存活下來,即使是節點號小的節點存在網路問題。
磁碟心跳:ocssd.bin程式每秒鐘都會向所有表決盤(Voting File)註冊本節點的狀態資訊,這個過程叫做磁碟心跳。如果某個節點連續丟失磁碟心跳達到閥值disk timeou(一般為200秒),則該節點會自動重啟以保證叢集的一致性。另外,CRS只要求[N/2]+1個表決盤可用即可,其中N為表決盤數量,一般為奇數。
2.oclsomon:這個程式負責監控ocssd是否掛起,如果發現ocssd.bin存在效能問題,則重啟該節點。
3.oprocd:這個程式只在Linux和Unix系統,並且第三方叢集管理軟體未安裝的情況下才會出現。如果它發現節點掛起,則重啟該節點。
批註:以上所有程式都是由指令碼init.cssd產生。
一般診斷節點重啟問題是經常蒐集的資訊。
1).作業系統日誌
2)./log//cssd/ocssd.log
3).oprocd.log(/etc/oracle/oprocd/*.log.* 或 /var/opt/oracle/oprocd/*.log.*)
4)./log//cssd/oclsomon/oclsomon.log
5). Oracle OSWatcher 報告
下面結合自己的RAC環境出現節點重啟問題進行分析:
查詢節點1的oprocd.log,如下:
檢視其它的日誌資訊,沒有發現明顯的錯誤資訊,因此懷疑是ORACLE oprocd的時間引數設定不當;
下面對oprocd引數進行設定:
當我們設定diagwait引數時,需要停止所有rac節點的叢集活動,停止順序如下(如果叢集式活動的,修改diagwait有可能會損害ocr);
1.root使用者執行,停止所有節點的CRS
2.停止10.2.0.3到11.1.0.6版本的RAC中才引入的OPROCD程式(OS系統安裝的DB版本是10.2.0.4)
3.檢查是否還有CRS相關的資源在執行
4.在任意一個節點使用ROOT使用者來設定DIAGWAIT的值(按照ORACLE的推薦,一般設定為13)
檢視設定結果,如下:
5.啟動所有節點的CRS資源
6.驗證CRS是否正常執行
7.檢視oprocd程式的狀態
批註:11gR2之前版本的叢集,ORACLE建議將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。
首先我們對能夠導致節點重啟的CRS程式進行介紹。
1.ocssd : 它的主要功能是節點監控(Node Monitoring)和組管理(Group Management),它是CRS的核心程式之一。節點監控是指監控叢集中節點的健康狀況,監控的方法是通過網路心跳(network heartbeat)和磁碟心跳(disk heartbeat)實現的,如果叢集中的節點連續丟失磁碟心跳或網路心跳,該節點就會被從叢集中驅逐,也就是節點重啟。組管理導致的節點重啟,我們稱之為node kill escalation(只有在11gR1以及以上版本適用)。重啟需要在指定的時間(reboot time,一般為3秒)內完成。
網路心跳:ocssd.bin程式每秒鐘向叢集中的各個節點通過私網傳送網路心跳資訊,以確認各個節點是否正常。如果某個節點連續丟失網路心跳達到閥值,misscount(預設為30秒,如果存在其他叢集管理軟體則為600秒),叢集會通過表決盤進行投票,使丟失網路心跳的節點被主節點驅逐出叢集,即節點重啟。如果叢集只包含2個節點,則會出現腦裂,結果是節點號小的節點存活下來,即使是節點號小的節點存在網路問題。
磁碟心跳:ocssd.bin程式每秒鐘都會向所有表決盤(Voting File)註冊本節點的狀態資訊,這個過程叫做磁碟心跳。如果某個節點連續丟失磁碟心跳達到閥值disk timeou(一般為200秒),則該節點會自動重啟以保證叢集的一致性。另外,CRS只要求[N/2]+1個表決盤可用即可,其中N為表決盤數量,一般為奇數。
2.oclsomon:這個程式負責監控ocssd是否掛起,如果發現ocssd.bin存在效能問題,則重啟該節點。
3.oprocd:這個程式只在Linux和Unix系統,並且第三方叢集管理軟體未安裝的情況下才會出現。如果它發現節點掛起,則重啟該節點。
批註:以上所有程式都是由指令碼init.cssd產生。
一般診斷節點重啟問題是經常蒐集的資訊。
1).作業系統日誌
2).
3).oprocd.log(/etc/oracle/oprocd/*.log.* 或 /var/opt/oracle/oprocd/*.log.*)
4).
5). Oracle OSWatcher 報告
查詢節點1的oprocd.log,如下:
檢視其它的日誌資訊,沒有發現明顯的錯誤資訊,因此懷疑是ORACLE oprocd的時間引數設定不當;
下面對oprocd引數進行設定:
當我們設定diagwait引數時,需要停止所有rac節點的叢集活動,停止順序如下(如果叢集式活動的,修改diagwait有可能會損害ocr);
1.root使用者執行,停止所有節點的CRS
2.停止10.2.0.3到11.1.0.6版本的RAC中才引入的OPROCD程式(OS系統安裝的DB版本是10.2.0.4)
3.檢查是否還有CRS相關的資源在執行
4.在任意一個節點使用ROOT使用者來設定DIAGWAIT的值(按照ORACLE的推薦,一般設定為13)
檢視設定結果,如下:
5.啟動所有節點的CRS資源
6.驗證CRS是否正常執行
7.檢視oprocd程式的狀態
批註:11gR2之前版本的叢集,ORACLE建議將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。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29634949/viewspace-1263889/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【RAC】Oracle19.13之後的grid,節點重啟後不會自動驅動Oracle
- oracle兩節點RAC,由於gipc導致某節點crs無法啟動問題分析Oracle
- Oracle RAC自啟動Oracle
- 【ASK_ORACLE】RAC節點自動重啟但日誌裡未報錯的原因和解決方法Oracle
- Oracle RAC 環境下的連線管理Oracle
- Oracle RAC 環境 引數檔案的啟動順序Oracle
- Oracle RAC新增節點Oracle
- Oracle RAC環境下ASM磁碟組擴容OracleASM
- RAC二節點啟動異常
- 記一次oracle 19c RAC叢集重啟單節點DB啟動異常(二)Oracle
- Oracle 11g RAC之HAIP相關問題總結OracleAI
- ryu啟動問題總結
- Oracle RAC的自定義service自啟動Oracle
- rac新增節點容易遇到的問題
- 多路徑配置問題和ACFS啟用原因導致rac二節點不能正常啟動
- Nginx每天莫名自動重啟問題Nginx
- Oracle11g RAC啟動關閉情況大概總結Oracle
- Oracle 19c rac安裝,只能啟動一個節點的ASMOracleASM
- Oracle Restart環境下的開機啟動指令碼OracleREST指令碼
- Oracle細節及難點總結Oracle
- 11.2.0.4 RAC生產環境刪除故障節點與增加新服務節點
- 私有IP丟失造成Oracle 12C RAC叢集節點不能啟動Oracle
- oracle 12c RAC安裝,例項不能多節點同時啟動Oracle
- oracle11g RAC新增節點Oracle
- Windows環境下Oracle11g安裝的問題WindowsOracle
- DM8 配置DMDSC主備環境(rac到單節點 )
- Oracle資料庫啟動問題彙總(一)Oracle資料庫
- React Native環境搭建--總結遇見的所有問題!!React Native
- 4.2.10 在Oracle重啟配置中管理環境變數Oracle變數
- RAC節點啟動失敗--ASM無法連線ASM
- Oracle 11gR2 RAC 叢集服務啟動與關閉總結Oracle
- rac新增節點容易遇到的問題(11g)
- 11g rac新增節點容易遇到的問題
- RAC和ASM環境下打patchASM
- RAC環境下建立物理DATAGUARD(1)
- RAC環境下建立物理DATAGUARD(2)
- Oracle RAC啟動失敗-軟連結惹的禍Oracle
- Spring Series---Springboot指定不同的啟動環境方法總結Spring Boot
- oracle-rac出問題需要重灌,自動清理安裝痕跡指令碼Oracle指令碼