1. 程式人生 > 其它 >oracle 11gR2 srvctl 命令啟動資料庫不成功處理總結

oracle 11gR2 srvctl 命令啟動資料庫不成功處理總結

oracle 11gR2 srvctl 命令啟動資料庫不成功處理總結

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;