RAC磁碟頭損壞問題處理

sjw1933發表於2022-10-08

背景:叢集當機以後,重啟報錯,DATADG1磁碟組無法啟動

1.手動掛起DATADG1磁碟組 報錯

alter diskgroup datadg1 mount

後臺ASM報錯

根據報錯 found 0 disks 懷疑 是磁碟組裡的磁碟有問題,沒有啟動

2.查詢磁碟狀態

`select name,path,STATE,MODE_STATUS from v$asm_disk;

發現磁碟都在,但是磁碟組沒法跟磁碟對應起來

3.硬體工程師檢查硬碟、以及儲存閘道器都正常,磁碟許可權也正常

4.懷疑是磁碟頭損壞了,導致磁碟組跟磁碟無法對應

select group_Number,disk_number,mount_status ,header_status from v$asm_disk;

發現2,3磁碟頭狀態為CANDIDATE

5.使用kfed檢視磁碟頭

kfed read /dev/rhdiskpower2

kfbh.type顯示異常 正常情況下應該是KFBTYP_DISKHEAD

5.修復2,3磁碟頭

<aside> ? 從版本10.2.0.5開始ASM 會對disk header做一個額外的備份。即第二AU 的倒數第二個block中備份了一份KFBTYP_DISKHEAD。這個ASM Disk header的作用是當真的KFBTYP_DISKHEAD被意外覆蓋或損壞時可以使用Oracle 工具 KFED使用repair選項來修復Disk header

</aside>

kfed repair /dev/rhdiskpower2

此時檢查 磁碟頭狀態正常,顯示為KFBTYP_DISKHEAD

6.一節點的資料庫反覆重啟

修復磁碟頭以後,磁碟能夠正常掛起,並且資料庫能夠拉起

但是資料庫在執行一段時間後 ,出現當機

資料庫日誌顯示 IO錯誤

由於作業系統為AIX,排查兩個節點的磁碟引數

lsattr -El hdisk20 | grep reserve

發現二節點並沒有設定no_reserve

這個引數的作用:這個引數其實是表示作業系統是否持有儲存卷的共享鎖方式

設定

chdev -l hdisk21 -a reserve_policy=no_reserve

設定完成後,一節點能夠正常執行

7.二節點gpnpd服務無法啟動

根據gipcd 日誌資訊

匹配到官方文件Doc ID 2034669.1


刪除以上三個目錄的快取,重啟rac,二節點啟動成功


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

相關文章