RAC環境:
oracle數據庫:oracle11gr2
操作系統:rhel6.4_x86_64
故障現象:
1、rac其一個節點的oracle與asm相關的進程和實例啓動失敗;
查看方法:ps -ef|grep ora_
ps -ef|grep asm_
crsctl stat res -t (只能看到節點1上啓動的oracle實例和asm實例)
2、在節點2上查看不到asm磁盤設備標籤;
查看方法:oracleasm listdisks (沒有內容)
ll /dev/oracleasm/disks/* (沒有內容)
3、在節點2上掃描asm磁盤時報以下錯誤;
查看方法:oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "VOL4"
Unable to instantiate disk "VOL4"
Instantiating disk "VOL1"
Unable to instantiate disk "VOL1"
4、查看oracleasm日誌信息提示權限問題;
查看方法:cat /var/log/oracleasm
分析過程:
爲了排除其它因素的干擾,我重啓了節點2的操作系統,重啓後節點2上的asm磁盤依舊不能正常加載,通過查看oracleasm日誌依然提示是權限問題,大膽猜想下,可能有以下原因導致asm
磁盤不能正常加載:
1、asm相關的rpm包安裝不正常,如版本不對應;
2、操作系統相關的安全服務導致;
3、系統重啓時rule規則配置不正確,導致asm磁盤不能正常加載;
排除:
1、rpm -aq|grep oracleasm 需要安裝3個包(kmod-oracleasm oracleasmlib oracleasm-support)
2、service iptables status (iptables 服務關閉)
getenforce (查看狀態enforcing,說明selinux服務沒有關閉)
3、本實例並沒有使用raw裸設備,因此沒有配置rule規則在啓動時加載
處理方法:
由於節點2的selinux服務沒有關閉,因此關閉selinux服務
setenforce 0
vi /etc/sysconfig/selinux
將SELINUX=enforcing改爲SELINUX=disabled,這樣重啓服務器則不會啓動selinux服務
關閉selinux服務後,執行asm磁盤掃描操作,正常識別asm磁盤。
oracleasm scandisks