【ASK_ORACLE】導致ora-29740報錯的可能原因和對應的解決方案

Attack_on_Jager發表於2021-09-01

實驗環境

搭建平臺:VMware Workstation

OS:RHEL 6.10

Grid&DB:Oracle 11.2.0.4


問題描述

一個例項將另一個例項從 RAC 資料庫踢出時,被踢出的例項的alert日誌出現了“ORA-29740:evicted by member ”錯誤導致了例項崩潰。

出現這個問題的原因一般可能是叢集中的通訊錯誤、向控制檔案傳送“心跳”失敗或者其它原因等。
此時需要檢查所有例項的 lmon 的trace檔案,這對確定例項驅逐的原因程式碼而言非常重要。查詢包含“kjxgrrcfgchk:Initiating reconfig”的那一行。

舉一個由於“通訊故障”導致 ora-29740錯誤的例子,如“kjxgrrcfgchk:Initiating reconfig, reason 3”。這裡的“reason 3”表示例項被踢出是由於原因 3(“通訊故障”) 導致的。導致通訊故障的可能原因如下:
1)網路問題
2)資源耗盡(CPU、I/O 等)
3)嚴重的資料庫爭用
4)Oracle bug


解決辦法

這裡提供幾種方案來排查:

1) 檢查網路,比如 UDP 錯誤或 IP 資料包丟失或故障錯誤
2) 檢查網路配置,確保所有節點上的所有網路配置均設定正確。例如,所有節點上 MTU 的大小必須相同,並且如果使用巨幀,交換機也能夠支援大小為 9000 的 MTU
3) 檢查伺服器是否存在 CPU 負載問題或可用記憶體不足
4) 檢查資料庫在例項被踢出之前是否正處於掛起狀態或存在嚴重的效能問題
5) 檢查 CHM (Cluster Health Monitor) 輸出,檢視伺服器是否存在 CPU 或記憶體負載問題、網路問題或者 lmd 或 lms 程式出現死迴圈
6) 使用 OSWatcher 來進行監控

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

相關文章