ORA-03113: end-of-file on communication channel


SQL> startup
ORACLE instance started.

Total System Global Area 6263357440 bytes
Fixed Size 2264856 bytes
Variable Size 1241514216 bytes
Database Buffers 4999610368 bytes
Redo Buffers 19968000 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 12704
Session ID: 66 Serial number: 3

Errors in file /u01/app/oracle/diag/rdbms/proc/proc/trace/proc_ora_12704.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 2097152000 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/fast_recovery_area/PROC/archivelog/2021_01_21/o1_mf_1_7_%u_.arc'
Errors in file /u01/app/oracle/diag/rdbms/proc/proc/trace/proc_ora_12704.trc:
ORA-16038: log 1 sequence# 7 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/redo01a.log'
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/redo01b.log'
USER (ospid: 12704): terminating the instance due to error 16038
System state dump requested by (instance=1, osid=12704), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/proc/proc/trace/proc_diag_12670_20210121133721.trc
Dumping diagnostic data in directory=[cdmp_20210121133721], requested by (instance=1, osid=12704), summary=[abnormal instance termination].

解决办法:

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

SQL> alter system set db_recovery_file_dest_size=8000M;

System altered.

SQL> alter database open;

Database altered.

该问题是由闪回区造成的,可以关闭闪回功能和归档功能加以解决。

alter database flashback off;

alter database noarchivelog;

这种关闭多用于恢复数据库后的操作,如果平时出现该问题,可能与归档的设置有关,考虑以下参数的设定是否正常

log_archive_dest_*

原文地址:https://www.cnblogs.com/102x/p/14308038.html