How to resolve ORA-19809 limit exceeded for recovery files

Introduction:-

How to fix ORA-19809 limit exceeded for recovery files. | In this article we will discuss how to resolve ORA-19809 and ORA-19804′ error. This has very common issue while doing RMAN backup, we have faced ORA-19809 and ORA-19804 error due to recovery destination full. In this scenario we will have to remove old archivelog (expired or unwanted) or increase the size of db_recovery_file_dest_size .

ORA-19809 Limit Exceeded For Recovery Files
ORA-19809 Limit Exceeded For Recovery Files

Why ORA-19809 Limit Exceeded for Recovery Files?

Likely cause of this error is that recover destination is full due to huge backup size. After verifying the old backup, we can remove them as per backup policy or add space to backup destination to eliminate this error.


RMAN> backup tablespace users;

Starting backup at 24-SEP-19

using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=130 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/data01/12cdatabase/oracle/oradata/gcdb1/users01.dbf
channel ORA_DISK_1: starting piece 1 at 24-SEP-19
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 09/24/2019 14:38:54
ORA-19809 limit exceeded for recovery files

ORA-19804: cannot reclaim 67108864 bytes disk space from 5033164800 limit


How do I free up space in flash recovery area?

To free up space in flash recover area for next backup.  We need to verify the available space and delete the old backup as per backup policy or.

Check the current value of db_recovery_file_dest_size.

SQL> show parameter db_recovery


NAME                                 TYPE        VALUE

———————————— ———– ——————————
db_recovery_file_dest      string     /data01/12cdatabase/oracle/fast_recovery_area
db_recovery_file_dest_size             big integer 4800M


Now we will check the space used .

SQL> select SPACE_USED/1024/1024/1024 “SPACE_USED(GB)”, SPACE_LIMIT/1024/1024/1024 “SPACE_LIMIT(GB)” from  v$recovery_file_dest;


SPACE_USED(GB) SPACE_LIMIT(GB)

————– —————
    4.68073177          4.6875

 

How can I increase my fast recovery area size?

In order to increate recovery file dest size, we just need to follow below steps.

Here we are changing the parameter db_recovery_file_dest_size  to increase the size. You can mention the size as per your requirement.  

 
 
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=100G SCOPE=SPFILE;
SQL> shut immediate.
SQL> Startup.



If you don’t want to shutdown database. You may delete the expired archive log online. We should ‘delete files from recovery area using rman on regular basis.

 

How do I delete a backup in Oracle?

 

To delete the old backup follow below steps to make free space for next backup.


RMAN> delete expired archivelog all;

RMAN>delete noprompt expired backup;
RMAN>delete noprompt expired archivelog all;
RMAN>delete noprompt obsolete recovery window of 7 days;


Verify the recovery_file_dest size.


SQL> select SPACE_USED/1024/1024/1024 “SPACE_USED(GB)” ,SPACE_LIMIT/1024/1024/1024 “SPACE_LIMIT(GB)” from  v$recovery_file_dest;

 

SPACE_USED(GB) SPACE_LIMIT(GB)
————– —————
    4.80296659              10


Now we can start the backup as below.

[oracle@prod ~]$ rman target /

Recovery Manager: Release 12.1.0.1.0 – Production on Tue Sep 24 16:32:38 2019


Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.


connected to target database: GCDB1 (DBID=1045104251)


RMAN> backup tablespace users;

Starting backup at 24-SEP-19

using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=305 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/data01/12cdatabase/oracle/oradata/gcdb1/users01.dbf
channel ORA_DISK_1: starting piece 1 at 24-SEP-19
channel ORA_DISK_1: finished piece 1 at 24-SEP-19
piece handle=/data01/12cdatabase/oracle/fast_recovery_area/GCDB1/backupset/2019_09_24/o1_mf_nnndf_TAG20190924T163242_grmxymnv_.bkp tag=TAG20190924T163242 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 24-SEP-19

Starting Control File and SPFILE Autobackup at 24-SEP-19

piece handle=/data01/12cdatabase/oracle/fast_recovery_area/GCDB1/autobackup/2019_09_24/o1_mf_s_1019838764_grmxyplb_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 24-SEP-19

Verify ORA-19809 Limit Exceeded for Recovery Files.

In backup logs, we can see no error showing. It means issue ‘ORA-19809 Limit Exceeded for Recovery Files‘ has been resolved for now.

Related Posts: – 

 
 

Leave a Comment