SQL> shutdown abort .com

About DBA Queries DBA Scripts Quick Guides Other Stuff Contact
Andy only 
 
ORA-19809: limit exceeded for recovery files

The flash recovery area is full:
ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used,
 and has 0 remaining bytes available.
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 10150912 bytes disk space from 2147483648 limit
ARC0: Error 19809 Creating archive log file to 
'/u01/app/oracle/flash_recovery_area/scr10/archivelog/2007_05_25/o1_mf_1_444_0_.arc'
ARC0: Failed to archive thread 1 sequence 444 (19809)
ARCH: Archival stopped, error occurred. Will continue retrying
ORACLE Instance scr10 - Archival Error
ORA-16038: log 2 sequence# 444 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 2 thread 1: '/u02/oradata/scr10/redo02.log'
ORA-16038: log 2 sequence# 444 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 2 thread 1: '/u02/oradata/scr10/redo02.log'
Thread 1 cannot allocate new log, sequence 446
ARC1: Archiving not possible: No primary destinations
ARC1: Failed to archive thread 1 sequence 444 (4)
ARCH: Archival stopped, error occurred. Will continue retrying
ORA-16014: log 2 sequence# 444 not archived, no available destinations
To verify this run the following query. It will show the size of the recovery area and how full it is:
set lines 100
col name format a60
select	name
,	floor(space_limit / 1024 / 1024) "Size MB"
,	ceil(space_used  / 1024 / 1024) "Used MB"
from	v$recovery_file_dest
order by name
/
To fix the problem, you need to either make the flash recovery area larger, or remove some files from it.

If you have the disk space available, make the recovery area larger:
alter system set db_recovery_file_dest_size=<size> scope=both
/
To remove files you must use RMAN. Manually moving or deleting files will have no effect as oracle will be unaware. The obvious choice is to backup and remove some archive log files. However, if you usually write your RMAN backups to disk, this could prove tricky. RMAN will attempt to write the backup to the flash recovery area...which is full. You could try sending the backup elsewhere using a command such as this:
rman target / catalog user/pass@rmancat

run {
allocate channel t1 type disk;
backup archivelog all delete input format '/<temp backup location>/arch_%d_%u_%s';
release channel t1;
}
This will backup all archive log files to a location of your choice and then remove them.

For more useful DBA queries click here.
Copyright© 2007-2012 Andrew Barry