1. 程式人生 > >11g rac 修改引數檔案導致資料庫無法啟動 解決方案!

11g rac 修改引數檔案導致資料庫無法啟動 解決方案!

rac中spfile預設是存在  '+DATADG/SID/spfileSID.ora'

然而一次修改錯誤的修改引數,重啟起資料庫之後報錯導致資料庫起不來了。
則可以先用各個節點上備用的pfile來啟動。

備用pfile位置:

       '$ORACLE_BASE/admin/SID/pfile/init.ora.88201323726'


即:在任意一個節點上執行

startup pfile='$ORACLE_BASE/admin/SID/pfile/init.ora.88201323726'

資料庫啟動起來之後,再將'+DATADG/SID/spfileSID.ora' 建立一個pfile版本。
create pfile='/tmp/pfileSID>ora' from spfile='+DATADG/SID/spfileSID.ora'

建立成功之後vi 修改'/tmp/pfileSID>ora' 此檔案 將先前改錯的引數改回來。

然後再通過改正確的pfile '/tmp/pfileSID>ora' 來生成新的spfile

即:create spfile= '+DATADG/SID/spfileSID.ora' from pfile='/tmp/pfileSID>ora';

然後 關閉資料庫,刪除之前在節點上通過備份init.ora檔案創建出來的spfile.

然後 啟動資料庫 就會發現可以正常通過+DATADG/SID/spfileSID.ora引數檔案啟動了。

總結:
a: 通常讀取引數檔案順序
我們知道,如果不指定引數檔案,oracle是按照這個順序查詢檔案來啟動資料庫的:
spfileSID.ora
spfile.ora
initSID.ora
init.ora
如果這些檔案都沒有找到,啟動會失敗。

b:檢視srvctl讀取spfile位置
srvctl config database -d orcl

c:修改叢集中spfile位置
   c1:在asmcmd中將spfile複製到修改後的位置
      用cp命令

   c2:將更改後的路徑註冊到ocr
      srvctl modify database -d orcl -p '+dbdg/orcl_2/spfileorcl.ora';