Oracle RAC常見啟動失敗故障分析

chenoracle發表於2020-02-24

Oracle RAC 常見啟動失敗故障分析

 

一:ohasd 啟動失敗

二:cssd 啟動失敗

三:crsd 啟動失敗

四:RAC 掛起分析

 

先看下叢集啟動順序:

一:ohasd 啟動失敗

高可用 服務守護程式OHASD 11gR2 首次引入的新叢集堆疊,用來管理和控制其他叢集堆疊。主要職責包括管理 OLR 啟動、停止和驗證本地和遠端節點叢集健康情況。

常見問題:

CRS-4639:Could not contact Oracle High Availability Services

或者

CRS-4124:Oracle High Availability Services startup failed

CRS-4000:Command Start failed,or completed with errors

1 檢查叢集件的告警日誌 alert<HOSTNAME>.log($GRID_HOME/log/$hostname/ohasd)

2 檢查 ohasd.log($GRID_HOME/log/hostname/ohasd/ohasd.log)

記錄了root.sh 指令碼出錯、 ohasd 程式無法啟動、 OLR 檔案損壞等資訊。

3 檢查 /etc/init,/etc/inittab ,驗證 ohasd 對應的啟動是否存在

4 檢查作業系統上 ohasd 守護程式是否存在

ps -ef|grep init.ohasd

可能出現的問題:

1 嘗試手動啟動OHASD ,可能是自動啟動失效。

2 檢查跟蹤檔案中任何與OLR 有關的問題。

如果OLR 檔案損壞,使用下面命令還原:

ocrconfig -local -restore $backup_location/backup_filename.olr

3 使用作業系統命令檢查網格架構目錄許可權

叢集啟動的套接字檔案:

/var/tmp/.oracle

/usr/tmp/.oracle

/tmp/.oracle

二:cssd 啟動失敗

叢集同步守護程式CSSD 主要功能包括節點監控、分組服務管理、鎖服務、叢集心跳等。

常見問題:

CRS-4530:Communications failure contacting Cluster Synchronization Services daemon:

1 檢查叢集件的告警日誌 alert<HOSTNAME>.log($GRID_HOME/log/$hostname)

告警日誌記錄了叢集守護程式的啟動資訊還有出現異常情況發生節點驅逐的資訊等。

2 檢查 ocssd.log($GRID_HOME/log/<hostname>/cssd)

記錄了所有重要事件和訊息,是最繁忙的CRS 日誌檔案之一,會記錄發生節點驅逐事件之前的資訊。

3 檢查作業系統中 CSSD 程式

ps -ef|grep cssd.bin

可能出現的問題:

確保該節點能否訪問表決磁碟(VD):

crsctl query css votedisk

網路或者磁碟心跳故障。

驗證私有網際網路絡以及節點上其他網路相關設定。

VD 存放在 ASM 中,確保 ASM 例項已經啟動。

使用下面命令來驗證ASM 、叢集私有互聯、 CSSD 和其他叢集資源狀態 :

crsctl stat res -init -t

如果發現ora.cluster_interconnect.haip 資源處於離線狀態 (OFFLINE) ,此時需要驗證互聯連線,並檢查該節點上的網路設定。

還可以嘗試手動啟動離線的資源:

$GRID_HOME/bin/crsctl start res ora.cluster_interconnect.haip -init

$GRID_HOME/bin/crsctl start res ora.cssd -init

三:crsd 啟動失敗

CRSD 主要功能包括資源監控、資源故障轉移、 OCR 管理等

常見問題:

CRS-4335:Cannot communicat with CRS:

1 檢查叢集件的告警日誌 alert<HOSTNAME>.log($GRID_HOME/log/$hostname)

2 檢查 crsd.log($GRID_HOME/log/<hostname>/crsd)

記錄了啟動和停止叢集或非叢集資源、故障轉移操作、資源經過、訊息或通訊錯誤等。

3 檢查作業系統中 CRSD 程式

ps -ef|grep crsd.bin

4 檢查 OCR 能否正常訪問

5 OCR 存放在 ASM 中,檢查 ASM 例項是否已經啟動,所有磁碟組是否全表載入。

檢視crsd 程式是否聯機

crsctl stat res -init -t

可以使用下面命令手動啟動單個守護程式:

$GRID_HOME/bin/crsctl start res ora.cssd -init

6 檢查$GRID_HOME $ORACLE_HOME 磁碟空間是否充足。

7 檢查系統資源 記憶體、CPU I/O 負載情況。

單個啟動任何離線的資源。

檢查OCR 完整性

-- 驗證 OCR 的完整性和邏輯損壞

ocrcheck

-- 列出 OCR 磁碟的位置和名稱

ocrcheck -config

-- 列出 OLR 的位置和名稱

ocrcheck -local -config

-- 從所有節點上驗證 OCR 的完整性

cluvfy comp ocr -n all -verbose

-- 從本地節點上驗證 OCR 的完整性

cluvfy comp ocr -n rac1 -verbose

四: RAC 資料庫的掛起分析

當資料庫執行緩慢或由於內部死鎖或latch 導致資料庫掛起等,這時候建議使用掛起分析。

SQL> oradebug setmypid

SQL> oradebug unlimit

SQL> oradebug setinst all         --- 在叢集範圍內使用掛起分析

SQL> oradebug -g all hanganalyze 3   --- 通常使用的級別是 3

--- 等待幾分鐘

SQL> oradebug -g all hanganalyze 3

 

參考---<< 深入理解 Oracle RAC 12C>>

歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!

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

相關文章