問題描述:本人那次用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錯誤。
我又按照下面解決方案,
(2)解決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、刪除失效歸檔日誌.
rman
RMAN> connect target /
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
RMAN> exit
5、重新啟動資料庫
sql> shutdown immediate
sql> startup
我的supermapdb資料庫又重新恢複了
OK,一切正常。真是慚愧,感謝大家支援和協助。