1. 程式人生 > >pfile檔案錯誤導致資料庫例項啟動失敗

pfile檔案錯誤導致資料庫例項啟動失敗

資料庫環境:
oracle 10.2.0+windows xp
 故障描述:
在windows xp上把oracle服務和監聽啟動之後,在SQL*PLUS中用sysdba身份登入後,啟動oracle,報如下錯誤:
ORA-16032: parameter LOG_ARCHIVE_DEST_1 destination string cannot be translated
ORA-09291: sksachk: invalid device specified for archive destination

create pfile from spfile;(預設)
create pfile('c:\\initSID.ora') from spfile(輸出到指定位置)
startup pfile=c:\\initSID.ora;(啟動例項)
 
錯誤解決:
    根據錯誤提示該錯誤產生的原因是因為引數檔案中的LOG_ARCHIVE_DEST_1引數無法讀取而產生這個錯誤。我突然想起,我的資料庫本來是啟動了自動歸檔並指定了歸檔日誌存放地址的,即指定了LOG_ARCHIVE_DEST_1引數,但是昨天呢我一時手誤把存放這個歸檔日誌檔案的資料夾給刪掉了。而啟動oracle資料庫的過程中首先是讀取引數檔案從中讀取初始化引數並據此啟動例項和後臺程序,分配記憶體的,由於有些引數找不到,所以就報錯了,這就是此錯誤引起的原因。
    知道了故障根源以及緣由之後,解決方法就很簡單啦。既然是引數檔案中某個引數出問題了,那麼就可以在引數檔案中下手。此時如果資料庫使用的是靜態引數檔案,那麼可以直接在引數檔案中修改LOG_ARCHIVE_DEST_1引數,儲存後重新啟動。如果資料庫使用的是SPFILE,那麼可以從SPFILE中生成PFILE,然後在PFILE中修改LOG_ARCHIVE_DEST_1引數,儲存後再從PFILE中生成SPFILE,儲存,重新啟動即可。
故障總結:
  這引數檔案的錯誤在資料庫中時常有發生,即使意外的操作或者意外的DOWN機也可能導致引數出錯,這就警告我們備份引數檔案毋容置疑啊。