環境:
平台:RedHat EnterPrise 5.8 X86_X64
資料庫:Oracle EnterPrise 11.2.0.3
叢集軟體:Oracle grid 11.2.0.3
故障現象:
資料庫出現了歸檔失敗,其中有一個節點的執行個體出現HANG死的狀況。
日志資訊如下:
分析:
由于歸檔失敗發生在ASM磁盤上,首先檢查ASM磁盤空間以及DB_RECOVERY_FILE_DEST_SIZE,ASM磁盤空間是足夠的,而且由于隻有一個節點出現出現了無法歸檔的問題,也可以排除是空間不足造成的。确認兩個節點的DB_RECOVERY_FILE_DEST_SIZE參數設定都是0,基本上可以判斷問題和目前節點的ASM執行個體狀态不正常有關。
檢查ASM執行個體的錯誤資訊:
目前節點ASM執行個體出現了的這個資訊,說明報錯發生在執行個體2上:
果然執行個體2上的ASM出現了大量ORA-4031錯誤。檢查ASM啟動的參數配置:
調整及建議:
目前ASM執行個體使用預設的MEMORY_TARGET配置,配置設定大小大約是400M,根據Oracle的MOS文章:ASM & Shared Pool (ORA-4031) [ID 437924.1],在11.2.0.3中,Oracle增加了ASM執行個體所允許的預設程序數PROCESSES,但是預設的MEMORY_TARGET參數沒有增加。
根據Oracle的建議,11.2.0.3的MEMORY_TARGET至少應該設定到1536M,而MEMORY_MAX_TARGET設定為4096M。
對于目前的情況,如果短時間内無法重新開機DB和ASM執行個體,可以在問題節點配置一個本地歸檔路徑,設定目标路徑為本地磁盤,進而避免歸檔無法完成而導緻的執行個體HANG死。