今天研究Oracle遇到了這個問題ora-01033:oracle initialization or shutdown in progress,經過分析研究終於解決了,寫下來紀念一下。我的庫是oracle 9i,具體就是90的。
一、首先:問題的產生原因,出現這個錯誤是因為我將oracle/oradata/oradb下的一個檔案誤刪除掉後出現的。
二、現象:SQL*Plus無法串連,顯示以下錯誤: ORA-01033: ORACLE initialization or shutdown in progress ,Enterprise Manager Console中也是同樣的錯誤。
三、分析:應該是Oracle在啟動後,使用者登入時是要將方案中原有配置資訊裝載進入,裝載過程中遇到原有檔案指定的位置上沒有找到,所以就報出錯誤。
四、解決過程:
1、我在解決時由於著急使用,便用Database Configuration Assistant工具重新建立了一個新的庫,臨時解決急用的問題,同時也給後期解決ora-01033問題埋下了隱患。
2、在9i中是沒有svrmgrl 命令的,要用sqlplus。
3、先在windows下運行cmd,進入DOS環境。
4、以DBA使用者登入,具體命令是
sqlplus /NOLOG1connect sys/change_on_install as sysdba
提示:已成功1shutdown normal
提示:資料庫已經關閉
已經卸載資料庫
ORACLE 常式已經關閉
1startup mount
提示:ORACLE常式已經啟動
Total System Global Area 118255568 bytes
Fixed Size 282576 bytes
Variable Size 82886080 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
資料庫裝載完畢
1alter database open;
提示:
第 1 行出現錯誤:
ORA-01157: 無法標識/鎖定資料檔案 19 - 請參閱 DBWR 追蹤檔案
ORA-01110: 資料檔案 19: ''''C:/oracle/oradata/oradb/FYGL.ORA''
這個提示檔案部分根據每個人不同情況有點差別。
繼續輸入1alter database datafile 19 offline drop;
提示:資料庫已更改。
迴圈使用最後兩步,直到alter database open;後不再提示錯誤,出現“資料庫已更改”。
然後接著輸入即可1shutdown normal
提示:資料庫已經關閉
已經卸載資料庫
ORACLE 常式已經關閉
1startup
提示:ORACLE常式已經啟動
Total System Global Area 118255568 bytes
Fixed Size 282576 bytes
Variable Size 82886080 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
資料庫裝載完畢
就可以解決了。
5、最後說一下,第一條提到的隱患,因為建立了新的庫,ORACLE_SID也就發生了變化,在使用者登入的時候會有ORA-12560錯誤,解決這個問題是將系統註冊表中的HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0/ORACLE_SID
索引值修改成之前那個SID就可以了,使用者也能就能正常登入了。