1. 程式人生 > >Oracle Rac中某一節點因儲存鏈路出錯導致資料庫IO讀寫卡頓的問題解決

Oracle Rac中某一節點因儲存鏈路出錯導致資料庫IO讀寫卡頓的問題解決

環境:Oracle 11.2.4.0 RAC

問題描述:

資料庫IO讀寫卡頓,隨之某一節點的asm磁碟組被強制dismount,例項被迫停止。

問題分析:

通過系統日誌分析,發現有Buffer I/O error的故障刷屏,如下圖:

用multipath -ll檢視伺服器磁碟多路徑,發現某一節點兩塊磁碟路徑分別丟失了兩條(正常情況為四條路徑,一條為active狀態,其他三條為enabled狀態):


重新重新整理路徑,發現磁碟路徑出錯,從而導致兩塊磁碟所在的ASM磁碟組DATA2處於dismount狀態的,因此造成該節點例項停止執行。

問題解決:

1、通過儲存重新掛載新的兩塊磁碟,用multipath -ll 確認新加的兩塊磁碟路徑在兩個節點中都正常,如下圖:



(以下操作皆在grid使用者下執行!“su - grid” 進入grid使用者)

2、在正常節點中,進入ASM磁碟組管理介面,把新加的兩塊盤新增到磁碟組DATA2中,等待磁碟組資料自動平衡,如下圖:


(在grid使用者下,執行命令"sqlplus / as sysasm"連線進入asm,再執行以下命令!)


當顯示REBAL RUN”狀態說明資料正在自動平衡到新加的磁碟,資料同步過程需要一段時間。

資料同步過程如下:


DATA2_0000、DATA2_0001 是舊的路徑出錯的兩塊盤,DATA2_0002、DATA2_0003 是新加的正常的兩塊盤。


同步完成,再檢視狀態,當顯示“no rows selected”狀態表示資料已經平衡完畢。如下:


3、開始刪除舊的路徑損壞的兩個磁碟DATA2_0000, DATA2_0001,並等待資料自動同步到新加的兩塊磁碟DATA2_0002, DATA2_0003中,如下圖:



在舊的兩塊盤被踢除之前,asm機制會把這兩塊盤上的資料自動遷移到兩塊新的盤中,當顯示REBAL RUN”狀態說明資料正在自動平衡,資料同步過程需要一段時間,過程如下:



當DATA2磁碟組中只顯示兩塊新的盤的時候,還有asm_operation檢視結果處於“no rows selected”狀態時,說明舊的兩塊盤已經被成功踢除!

3、再到不正常的節點中,用 " alter diskgroup DATA2 mount; " 命令掛載DATA2磁碟組,掛載成功,日誌如下:


4、分別在兩個節點中進入asmcmd,用“lsdg”命令檢視磁碟組情況,狀態正常,如下:


5、在不正常節點中,啟動例項,啟動成功,問題解決!