ORA-00704: bootstrap process failure的解決方案

alei_1304發表於2013-02-19

昨天剛剛手工建立了資料庫,時間太晚,沒繼續研究,結果今天再次開啟資料庫時報了下面的錯誤

ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option

按照下面的建議通過

SQL>startup update

確實可以open資料庫,但是終究不是問題的解決辦法,下次startup仍然會報上面的錯誤。通過查詢發現

[oracle@sigleNode ~]$ oerr ora 39700
39700, 00000, "database must be opened with UPGRADE option"
// *Cause:  A normal database open was attempted, but the database has not
//          been upgraded to the current server version.
// *Action: Use the UPGRADE option when opening the database to run
//          catupgrd.sql (for database upgrade), or to run catalog.sql
//          and catproc.sql (after initial database creation).

通過網上常見問題的解釋,大致為資料庫軟體進行了升級,但是對應的資料庫字典表沒有進行升級導致,需要startup upgrade之後,然後執行catupgrd.sql 即可。

但是我昨天剛剛手工建立的資料庫沒有進行升級,肯定不是這種情況,感覺特別疑惑,看一下

ORA-00704: bootstrap process failure引導程式失敗,而且資料庫沒有進行任何操作,僅僅是建立資料庫之後建立了資料字典,結合網上其他的解釋,感覺應該是建立資料字典出了問題。通過開啟資料庫報錯都可以通過sql跟蹤來跟進,跟進一下開啟資料庫時的sql跟蹤檔案

sql>startup mount;;

sql>alter session set sql_trace=true;

確認下跟蹤檔案的位置之後開啟資料庫,同樣報了上面錯誤。

開啟跟蹤檔案到最後幾行

SELECT NULL FROM REGISTRY$ WHERE CID='CATPROC' AND VERSION = :1
END OF STMT
PARSE #5:c=20001,e=26341,p=9,cr=23,cu=0,mis=1,r=0,dep=1,og=4,tim=1390627568015438
EXEC #5:c=0,e=538,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1390627568016134
FETCH #5:c=0,e=615,p=2,cr=3,cu=0,mis=0,r=0,dep=1,og=4,tim=1390627568016806
STAT #5 id=1 cnt=0 pid=0 pos=1 bj=891 p='TABLE ACCESS FULL REGISTRY$ (cr=3 pr=2 pw=0 time=613 us)'
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
EXEC #3:c=708045,e=2497539,p=41,cr=512,cu=0,mis=0,r=0,dep=0,og=4,tim=1390627569051830
ERROR #3:err=1092 tim=1718720068

執行到

SELECT NULL FROM REGISTRY$ WHERE CID='CATPROC' AND VERSION = :1
這個語句時報了錯誤。

將資料庫用 startup upgrade 啟動起來,然後執行 SELECT NULL FROM REGISTRY$ WHERE CID='CATPROC',發現沒有抱錯,但是沒有記錄,所以我到一個好的資料庫中查詢了 SELECT * FROM REGISTRY$ WHERE CID='CATPROC' 發現是有記錄的,懷疑問題就出在這裡 沒有找到 CATPROC 的記錄導致 資料庫載入程式程式失敗。
我仔細檢查了一下執行的建立資料字典的指令碼

@$ORACLE_HOME/rdbms/admin/catalog.sql
@$ORACLE_HOME/rdbms/admin/cataproc.sql

原來是第二個指令碼手誤,應該是catproc.sql

startup upgrade之後重新執行這個指令碼,重新啟動例項成功。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7483882/viewspace-754314/,如需轉載,請註明出處,否則將追究法律責任。

相關文章