Database environment :oracle 11.2.0.1 standalone with ASM on solaris 10 sp2
【問題來源】
因主機硬件(富士通pp650機器比較老)磁盤故障系統crash,檢查發現該系統的硬盤陣列為raid1,由於其中一塊鏡像盤故障(非損壞)導致系統無法啟動到 RW狀態,狀態為readonly。系統工程師通過console進入系統將boot 引導盤更改為另一盤符后,OS啟動正常,但oracle database 沒有隨OS 一起啟動。
【database 檢查】
無任何日志更新,手動啟動OHAS 服務,報錯:
grid@/home/gird>crsctl start has
CRS-4124: Oracle High Availability Services startup failed.CRS-4000: Command Start failed, or completed with errors
【注意】此時沒有任何日志出現更新,通過網上翻閱,有csdn網友認為這是一個11.2.0.1 的bug(具體bug號還未找到),與/var/tmp/.oracle的 npohasd文件有關
【處理方法】如果是rac 請在 每個節點上分別操作
方法1.dd /var/tmp/.oracle/npohasd 文件
【root@oradb1】 dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
時間較長,但不用去中斷(此時可以去看grid_home/log/hostname/ohasd/ 日志已經開始更新),可進行下一步手動啟動has服務的操作:
grid@/home/gird>crsctl start has
grid@/home/grid>ps -ef|grep has
grid 1690 1 0 18:07:31 ? 2:23 /ora/u01/oracle/product/11.2/grid/bin/ohasd.bin reboot
grid 1701 1 0 18:07:33 ? 17:14 /ora/u01/oracle/product/11.2/grid/bin/oraagent.bin
grid 9637 1 1 19:23:20 ? 7:42 /ora/u01/oracle/product/11.2/grid/bin/tnslsnr LISTENER -inherit
.....
此時相關crs 進程開始出現,has 服務啟動正常
方法2.刪除 /var/tmp/.oracle/npohasd 文件后重啟has 服務,has 即可正常啟動。