資料庫啟動時遇到ORA-03113: 通訊通道的檔案結尾

abstractcyj發表於2015-01-21
本機通過expdp匯入資料之後,關機。今天啟動時,在mount之後報錯: ORA-03113: 通訊通道的檔案結尾。
檢視alert_$ORACLE_SID.log, 發現如下錯誤資訊:

ARCH: Error 19809 Creating archive log file to 'C:\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2015_01_21\O1_MF_1_172_%U_.ARC'
Wed Jan 21 09:37:02 2015
Errors in file C:\ORACLE\diag\rdbms\orcl\orcl\trace\orcl_ora_5224.trc:
ORA-16038: 日誌 1 sequence# 172 無法歸檔
ORA-19809: 超出了恢復檔案數的限制
ORA-00312: 聯機日誌 1 執行緒 1: 'C:\ORACLE\ORADATA\ORCL\REDO01.LOG'
USER (ospid: 5224): terminating the instance due to error 16038


SQL> startup mount
ORACLE 例程已經啟動。


Total System Global Area 2488635392 bytes
Fixed Size                  2798928 bytes
Variable Size             721423024 bytes
Database Buffers         1744830464 bytes
Redo Buffers               19582976 bytes
資料庫裝載完畢。
SQL> show parameter recovery


NAME                                 TYPE        VALUE
------------------------------------ ----------- -----------------------------
db_recovery_file_dest                string      C:\oracle\fast_recovery_area
db_recovery_file_dest_size           big integer 6930M
recovery_parallelism                 integer     0
SQL>

現在的fast recovery area都已經全部佔滿了,然後oracle在進行啟動時恢復的時候redo日誌寫入錯誤,導致啟動時出錯

因為是本機,最簡單的解決辦法是刪除所有的歸檔日誌
開始使用RMAN刪除歸檔日誌

crosscheck archivelog all;
delete expired archivelog all;
在刪除過期歸檔日誌後收效不大,直接簡單粗暴:
delete noprompt archivelog all;


也可以使用:
delete noprompt archivelog until time "sysdate -1"; 


然後alter database open; 
資料庫成功開啟。

雖然只是個本機學習用的庫,但是從這個錯誤中也汲取到了不少養分。

如果在正式庫上不能刪除歸檔日誌,那就只能更改快速fast recovery area的大小限制了
startup mount;
 alter system set db_recovery_file_dest_size =10G scope=both;
alter database open;

參考: 
http://blog.csdn.net/inthirties/article/details/4521793

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

相關文章