Thursday, January 17, 2013

ORA-19809: limit exceeded for recovery files or ORA-19815: WARNING: db_recovery_file_dest_size 100% used


ORA-19809: limit exceeded for recovery files or ORA-19815: WARNING: db_recovery_file_dest_size 100% used


Error message:

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


Solution:


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
/
We can fix this this problem by increasing the size of flash recovery area (db_recovery_file_dest_size)  or remove some files from the location.

If you have the disk space available, make the  recovery area larger:

alter system set db_recovery_file_dest_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:
This will backup all archive log files to a location of your choice and then remove them. 
rman target / catalog user/pass@rmancat

run {
allocate channel t1 type disk;
backup archivelog all delete input format '//arch_%d_%u_%s';
release channel t1;
}

No comments:

Post a Comment