oracle 11gR2 srvctl 命令啟動資料庫不成功處理總結
oracle 11gR2 srvctl 命令啟動資料庫不成功處理總結
cucanqi9387 2011-04-18 17:04:02 195 收藏 文章標籤: 資料庫客戶所在主機4月15號下午19點鐘後做相關維護,需要關閉資料庫,維護主機任務完成後,用srvctl start database命令啟動資料庫不成功,用sqlplus方式資料庫能正常開啟,雖然資料庫能開啟,但ora.db.db資源offline,導致db service_name起不來,監聽不到,外面應用連線失敗。
問題報錯如下:
CRS-2640: Required resource ‘ora.paulyitest.dg’ is missing
現把此次分析處理過程總結如下:
1 背景
我在2011-03-24針對db 資料庫,建立paulyitest磁碟組來做測試,建立diskgroup方法是用命令方式建立,刪除diskgroup方法也是命令方式刪除。
2 分析過程
2.1 檢視資料庫日誌
正常,沒有與paulyitest 磁碟組相關報錯資訊。
2.2 檢視叢集日誌
$ORACLE_HOME/log/nfzhdb下的日誌
srvctl start database也是報
CRS-2640: Required resource ‘ora.paulyitest.dg’ is missing
2.3 檢視監聽日誌
正常,沒有與paulyitest 磁碟組相關報錯資訊。
2.4 asmca圖形工具檢查
paulyitest 磁碟組不存在
2.5 檢查asm例項引數
asm_diskgroups 引數
引數下面也沒有paulyitest磁碟組
2.6 srvctl 啟動資料庫方式去掉丟失的磁碟組
srvctl modify database -d DB -a “DGsystem,dgrecover”
srvctl disable diskgroup -g paulyitest
srvctl remove diskgroup -g paulyitest –f
srvctl start database –d DB
啟動成功,檢視監聽狀態可以監聽到db服務,外面應用連線成功。
3 分析總結及建議
刪除磁碟組引起監聽不到資料庫service_name問題第一次遇到,好在及時發現問題和迅速解決問題,沒有給生產帶來什麼影響,這是經驗和教訓,所以針對這個問題,提出以下兩點建議:
1. oracle 11gR2版本,建議新增與刪除磁碟組用asmca圖形工具來做。
2. 命令方式,建議參考以下解決方法:
第一:建立磁碟組
節點1建立
create diskgroup dgtest EXTERNAL REDUNDANCY ‘/dev/rhdisk1’ size 200G;
節點2載入
alter diskgroup dgtest mount;
如果節點2不載入,會在節點2日誌中報相關這個磁碟組中資料檔案不存在的錯誤資訊。
第二:刪除磁碟組
節點2 解除安裝
Alter diskgroup dgtest dismount;
節點1刪除
DROP DISKGROUP dgtest INCLUDING CONTENTS;
再用srvctl 命令做以下操作
srvctl modify database -d MYDB -a “DATA1_DG”;
-a 後面輸入保留要的DG資訊
srvctl disable diskgroup -g dgtest;
srvctl remove diskgroup -g dgtest –f;