oracle ORA-01033錯誤的解決方案
問題描述:本人那次用C#程式操作影像資料——將多幅影像合成一幅影像,由於影像較大,通過oracle 資料庫來儲存,不過由於程式運行了一段時間後系統消耗的資源太多,結果程式為響應,我就把程式關閉。結果oracle資料庫崩掉了。
通過Oracle Enterprise Manager Console連線資料庫,就彈出ORA-01033: ORACLE initialization or shutdown in progress提示資訊。
(1)我到網上找到了相依的解決,如下
客戶Oracle伺服器進入PL/SQL Developer時報ora-01033:oracle initializationg or shutdown in progress 錯誤提示,應用系統無法連線Oracle服務。經遠端指導解決問題。過程如下:
1、進入CMD,執行set ORACLE_SID=fbms,確保連線到正確的SID;
2、執行sqlplus "/as sysdba"
SQL>shutdown immediate 停止服務
SQL>startup 啟動服務,觀察啟動時有無資料檔案載入報錯,並記住出錯資料檔案標號
SQL>shutdown immediate 再次停止服務
SQL>startup mount
SQL> recover datafile 2 恢復出錯的資料檔案
SQL>shutdown immediate 再次停止服務
SQL>startup 啟動服務,此次正常。
3、進入PL/SQL Developer檢查,沒有再提示錯誤。
執行結果如下:
C:/Documents and Settings/江毅>set ORACLE_SID=supermapdb
C:/Documents and Settings/江毅>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 9月 26 20:06:13 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> shutdown immediate
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 230689668 bytes
Database Buffers 373293056 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 4 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 4:
'E:/DATABASE/ORACLE/PRODUCT/10.2.0/ORADATA/SUPERMAPDB/.DBF'
SQL> shutdown immediate
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 230689668 bytes
Database Buffers 373293056 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
SQL> recover datafile 4
ORA-00283: 恢復會話因錯誤而取消
ORA-01110: 資料檔案 4:
'E:/DATABASE/ORACLE/PRODUCT/10.2.0/ORADATA/SUPERMAPDB/.DBF'
ORA-01157: 無法標識/鎖定資料檔案 4 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 4:
'E:/DATABASE/ORACLE/PRODUCT/10.2.0/ORADATA/SUPERMAPDB/.DBF'
SQL> shutdown immediate
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 230689668 bytes
Database Buffers 373293056 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 4 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 4:
'E:/DATABASE/ORACLE/PRODUCT/10.2.0/ORADATA/SUPERMAPDB/.DBF'
SQL>
這顯示按他的方法是沒辦法解決該問題的。
結果我仔細發現 E:/DataBase/oracle/product/10.2.0/oradata/SuperMapDB 資料夾下沒有.DBF檔案。只有 SUPERMAPDB.DBF 檔案。我想這個SUPERMAPDB.DBF有可能就是 .DBF 檔案 所以我就是把SUPERMAPDB.DBF檔案更改成.DBF。在重試了上面的方法。結果出現了ORA-16038、 ORA-19809、 ORA-00312錯誤!
我又按照下面解決方法,
Oracle 10g預設的歸檔日誌存放在flash_recovery_area,而預設安裝的時候該區間選擇了1G大小
當歸檔日誌超過1G的時候,空間不足,於是無法歸檔,當時手工刪除歸檔日誌檔案,Oracle是無法識別空間是否釋放。導致資料庫無法啟動
解決辦法:
1、mount資料庫
sql> startup mount (注意,這時候還會報錯,但是可以更改系統引數)
2、 更改系統引數
sql> alter system set db_recovery_file_dest_size=2g scope=spfile;
{或者 ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=4G SCOPE=BOTH;}
引數db_recovery_file_dest_size的值根據磁碟剩餘空間大小和實際需要來設定,沒有定論
3、開啟資料庫
sql> alter database open
4、刪除失效歸檔日誌
rmanRMAN> connect target /
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
RMAN> exit
5、重新啟動資料庫
sql> shutdown immediate
sql> startup
我的supermapdb資料庫又重新恢復了
OK,一切正常!真是慚愧,感謝大家支援和幫助。