場景:
oracle 12c 數據庫,進行了大量的插入操作,導致數據庫卡死,啟動失敗。
關鍵報錯信息:
ORA-03113: end-of-file on communication channel
報錯原因:
原來是大批量的數據插入導致閃回空間不足, 最常用的辦法刪除不需要的歸檔日志文件或者增加閃回空間大小(db_recovery_file_dest_size)
解決方法:
登錄 sqlplus /nolog SQL>conn /as sysdba 關閉數據庫 SQL>shutdown abort 或 shutdown immediate 裝載數據庫 SQL>startup mount 查看oracle運行日志路徑 SQL>show parameter background_dump 從日志中可以分析報錯原因,這里是歸檔日志空間被占用完了。 查看歸檔日志大小 SQL>show parameter db_recovery_file_dest_size 查看歸檔日志空間使用情況 SQL>select * from v$recovery_file_dest;
方法1:調整歸檔日志空間大小
SQL>alter system set db_recovery_file_dest_size=10G
方法2:刪除歸檔日志文件,可以釋放一部分空間
這里使用 RMAN工具,另外開啟一個窗口啟動 RMAN 進入rman工具窗口 rman target / 無效的過期的archivelog標出來 RMAN>crosscheck archivelog all; 刪除3天前的歸檔日志 RMAN>delete noprompt archivelog until time "sysdate -3"; 刪除過期日志 RMAN>delete expired archivelog all; 刪除截止今天的所有日志 RMAN>delete archivelog until time 'sysdate'; 即刪除所有的歸檔日志 RMAN>delete noprompt archivelog all;
參考鏈接:
https://blog.csdn.net/zwk626542417/article/details/39667999?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
https://blog.csdn.net/dataminer_2007/article/details/41775257
https://blog.csdn.net/qq_17079071/article/details/78893971