Oracle启动报错:ORA-03113: end-of-file on communication channel
问题背景:客户启动测试环境数据库报错
SQL> startup
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2220200 bytes
Variable Size 885002072 bytes
Database Buffers 176160768 bytes
Redo Buffers 5554176 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 17509
Session ID: 416 Serial number: 3
1> 查看alert日志
ARC3 started with pid=23, OS id=17541
ARC2: Archival started
ARC1: Becoming the ‘no FAL’ ARCH
ARC1: Becoming the ‘no SRL’ ARCH
ARC2: Becoming the heartbeat ARCH
Errors in file /u01/app/oracle/diag/rdbms/ecology/ecology/trace/ecology_ora_17509.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 53687091200 bytes is 99.99% used, and has 3795456 remaining bytes available. —归档目录以及100%
************************************************************************
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.
************************************************************************
Errors in file /u01/app/oracle/diag/rdbms/ecology/ecology/trace/ecology_ora_17509.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 40733696 bytes disk space from 53687091200 limit
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’
Errors in file /u01/app/oracle/diag/rdbms/ecology/ecology/trace/ecology_ora_17509.trc:
ORA-16038: log 1 sequence# 10288 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: ‘/u01/app/oracle/oradata/ecology/redo01.log’
USER (ospid: 17509): terminating the instance due to error 16038
Instance terminated by USER, pid = 17509
2> 从alert日志看出归档目录已经满了,需要清理归档目录
SQL> shutdown immediate
SQL> startup mount
rman target /
crosscheck archivelog all;
delete archivelog until time ‘sysdate -3’;–删除三天前的日志
重新启动Oracle成功,,
ps:不建议客户使用默认归档目录,可以调整为本地目录并配置定期删除脚本