open數據庫報錯ERROR at line 1: ORA-03113: end-of-file on communication channel Process ID: 3880 Session ID: 125 Serial number: 3


1.今天打開數據時,失敗,報錯

ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 3880
Session ID: 125 Serial number: 3

2.想看下數據庫的狀態,發現提示:not connected to ORACLE
SYS@EMREP> select status,instance_name from v$instance;
ERROR:
ORA-03114: not connected to ORACLE

3.排查錯誤,使用Oracle三部啟動法:

startup nomount;(如果起來,說明參數文件沒問題)

alter database mount;(如果起來,說明控制文件沒問題)

alter database open;(報錯了,需要查看具體的報錯,通過aler日志查看)

> show parameter background_dump (查看alert日志所在位置)

 

 

4.進入alert日志,查看詳細報錯

cd /u01/app/oracle/diag/rdbms/emrep/EMREP/trace    (到alert日志所在的目錄下)

tail -100f alert_EMREP.log   (查看詳細報錯日志,如下:)

 

Errors in file /u01/app/oracle/diag/rdbms/emrep/EMREP/trace/EMREP_ora_3823.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.
************************************************************************
You have following choices to free up space from recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
   then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
   BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
   reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
   system command was used to delete files, then use RMAN CROSSCHECK and
   DELETE EXPIRED commands.
************************************************************************
ARCH: Error 19809 Creating archive log file to '/u01/app/oracle/EMREP/archivelog/2018_11_24/o1_mf_1_21_%u_.arc'
ARC2: Error 19809 Creating archive log file to '/u01/app/oracle/EMREP/archivelog/2018_11_24/o1_mf_1_22_%u_.arc'
Errors in file /u01/app/oracle/diag/rdbms/emrep/EMREP/trace/EMREP_ora_3823.trc:
ORA-16038: log 3 sequence# 21 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/EMREP/redo03.log'
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/EMREP/redo06.log'
ARCH: Archival stopped, error occurred. Will continue retrying
ORACLE Instance EMREP - Archival Error
ORA-16038: log 1 sequence# 22 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/EMREP/redo01.log'
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/EMREP/redo04.log'
USER (ospid: 3823): terminating the instance due to error 16038
System state dump requested by (instance=1, osid=3823), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/emrep/EMREP/trace/EMREP_diag_3791_20181124081720.trc
Dumping diagnostic data in directory=[cdmp_20181124081720], requested by (instance=1, osid=3823), summary=[abnormal instance termination].

根據日志,可以看出,是因為歸檔空間滿了,而且給出了解決辦法:

1) Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
  then consider changing RMAN ARCHIVELOG DELETION POLICY.  (將備份策略改為基於冗余數量的備份策略)

如:RMAN> configure retention policy to redundancy 5;

 

2). Back up files to tertiary device such as tape using RMAN BACKUP RECOVERY AREA command.

 

3). Add disk space and increase db_recovery_file_dest_size parameter to  reflect the new space.(增加db_recovery_file_dest_size的大小)

SQL> alter system set db_recovery_file_dest_size=2000M;

 

4). Delete unnecessary files using RMAN DELETE command. If an operating
   system command was used to delete files, then use RMAN CROSSCHECK and
   DELETE EXPIRED commands.   手動刪除不需要的歸檔日志文件 (刪除 3 天以前的日志記錄)

rman> delete archivelog all completed before 'sysdate - 3'

以上任意一種方法都可以,執行完畢,直接:alter database open 即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM