Oracle启动报错:ORA-03113: end-of-file on communication channel

Oracle启动报错:ORA-03113: end-of-file on communication channel
问题背景:客户启动测试环境数据库报错

复制代码
 1 SQL> startup
 2 ORACLE instance started.
 3 Total System Global Area 1068937216 bytes
 4 Fixed Size    2220200 bytes
 5 Variable Size    885002072 bytes
 6 Database Buffers    176160768 bytes
 7 Redo Buffers    5554176 bytes
 8 Database mounted.
 9 ORA-03113: end-of-file on communication channel
10 Process ID: 17509
11 Session ID: 416 Serial number: 3
复制代码

1> 查看alert日志

复制代码
 1 ARC3 started with pid=23, OS id=17541 
 2 ARC2: Archival started
 3 ARC1: Becoming the 'no FAL' ARCH
 4 ARC1: Becoming the 'no SRL' ARCH
 5 ARC2: Becoming the heartbeat ARCH
 6 Errors in file /u01/app/oracle/diag/rdbms/ecology/ecology/trace/ecology_ora_17509.trc:
 7 ORA-19815: WARNING: db_recovery_file_dest_size of 53687091200 bytes is 99.99% used, and has 3795456 remaining bytes available. ---归档目录以及100%
 8 ************************************************************************
 9 You have following choices to free up space from recovery area:
10 1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
11 then consider changing RMAN ARCHIVELOG DELETION POLICY.
12 2. Back up files to tertiary device such as tape using RMAN
13 BACKUP RECOVERY AREA command.
14 3. Add disk space and increase db_recovery_file_dest_size parameter to
15 reflect the new space.
16 4. Delete unnecessary files using RMAN DELETE command. If an operating
17 system command was used to delete files, then use RMAN CROSSCHECK and
18 DELETE EXPIRED commands.
19 ************************************************************************
20 Errors in file /u01/app/oracle/diag/rdbms/ecology/ecology/trace/ecology_ora_17509.trc:
21 ORA-19809: limit exceeded for recovery files
22 ORA-19804: cannot reclaim 40733696 bytes disk space from 53687091200 limit
23 ARCH: Error 19809 Creating archive log file to '/u01/app/oracle/flash_recovery_area/ECOLOGY/archivelog/2019_10_22/o1_mf_1_10288_%u_.arc'
24 Errors in file /u01/app/oracle/diag/rdbms/ecology/ecology/trace/ecology_ora_17509.trc:
25 ORA-16038: log 1 sequence# 10288 cannot be archived
26 ORA-19809: limit exceeded for recovery files
27 ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/ecology/redo01.log'
28 USER (ospid: 17509): terminating the instance due to error 16038
29 Instance terminated by USER, pid = 17509
复制代码

2> 从alert日志看出归档目录已经满了,需要清理归档目录

复制代码
1 SQL> shutdown immediate
2 SQL> startup mount
3 rman target /
4 crosscheck archivelog all;
5 delete archivelog until time 'sysdate -3';--删除三天前的日志
6 重新启动Oracle成功,,
复制代码

ps:不建议客户使用默认归档目录,可以调整为本地目录并配置定期删除脚本

原文地址:https://www.cnblogs.com/shujuyr/p/13111646.html