ORA-19809: limit exceeded for recovery files

ORA-19809: limit exceeded for recovery files: In this article we will be discuss about the ORA-19809: limit exceeded for recovery files.

This same solution is also working for the error ORA-00257: archiver error. Connect internal only, until freed.

Error:

RMAN> backup archivelog all;

Starting backup at 12-APR-24
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=88 RECID=84 STAMP=1166060285
input archived log thread=1 sequence=89 RECID=85 STAMP=1166060291
input archived log thread=1 sequence=90 RECID=86 STAMP=1166060312
input archived log thread=1 sequence=91 RECID=87 STAMP=1166060316
input archived log thread=1 sequence=92 RECID=88 STAMP=1166060320
input archived log thread=1 sequence=93 RECID=89 STAMP=1166060324
input archived log thread=1 sequence=94 RECID=90 STAMP=1166060327
input archived log thread=1 sequence=95 RECID=91 STAMP=1166060344
input archived log thread=1 sequence=96 RECID=92 STAMP=1166060352
input archived log thread=1 sequence=97 RECID=93 STAMP=1166060369
channel ORA_DISK_1: starting piece 1 at 12-APR-24
channel ORA_DISK_1: finished piece 1 at 12-APR-24
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2024_04_12/o1_mf_annnn_TAG20240412T013929_m1jjvsz5_.bkp tag=TAG20240412T013929 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 12-APR-24

Starting Control File and SPFILE Autobackup at 12-APR-24
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of Control File and SPFILE Autobackup command on ORA_DISK_1 channel at 04/12/2024 01:39:32
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 11223040 bytes disk space from 524288000 bytes limit

RMAN>

Cause:

db_recovery_file_dest_size used space was filled.

Solution:

Check the db_recovery_file_dest_size value and the space usage in recovery_dest.

SQL> show parameter db_recovery

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_
                                                 area
db_recovery_file_dest_size           big integer 25G
SQL>
SQL>
SQL> select (space_limit)/1024/1024/1024 "Total Space (GB)",(space_used)/1024/1024/1024 "Used Space (GB)", name "location" from v$recovery_file_dest;

Total Space (GB) Used Space (GB) location
---------------- --------------- ----------------------------------------------------------------------
              25                        24  /u01/app/oracle/fast_recovery_area

SQL>

Now we can see out of 25 GB, 24 GB is already used for db_recovery. So we required to increase the value of db_recovery_file_dest_size parameter to a higher value, here we have increased this parameter value to 30 GB.

If you don’t have enough space to increase the recovery dest size then you can delete expired archivelog and reclaim recovery size.

Increase the db_recovery_file_dest_size:

SQL> alter system set db_recovery_file_dest_size=30G;

System altered.

SQL>
SQL>
SQL> show parameter db_recovery

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_
                                                 area
db_recovery_file_dest_size           big integer 30G
SQL>
SQL>
SQL> select (space_limit)/1024/1024/1024 "Total Space (GB)",(space_used)/1024/1024/1024 "Used Space (GB)", name "location" from v$recovery_file_dest;

Total Space (GB) Used Space (GB) location
---------------- --------------- ----------------------------------------------------------------------
              30              24 /u01/app/oracle/fast_recovery_area

SQL>

Execute the RMAN backup command again.

RMAN> backup archivelog all;

Starting backup at 12-APR-24
current log archived
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=44 device type=DISK
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=88 RECID=84 STAMP=1166060285
input archived log thread=1 sequence=89 RECID=85 STAMP=1166060291
input archived log thread=1 sequence=90 RECID=86 STAMP=1166060312
input archived log thread=1 sequence=91 RECID=87 STAMP=1166060316
input archived log thread=1 sequence=92 RECID=88 STAMP=1166060320
input archived log thread=1 sequence=93 RECID=89 STAMP=1166060324
input archived log thread=1 sequence=94 RECID=90 STAMP=1166060327
input archived log thread=1 sequence=95 RECID=91 STAMP=1166060344
input archived log thread=1 sequence=96 RECID=92 STAMP=1166060352
input archived log thread=1 sequence=97 RECID=93 STAMP=1166060369
input archived log thread=1 sequence=98 RECID=94 STAMP=1166092176
channel ORA_DISK_1: starting piece 1 at 12-APR-24
channel ORA_DISK_1: finished piece 1 at 12-APR-24
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2024_04_12/o1_mf_annnn_TAG20240412T102936_m1khxrp4_.bkp tag=TAG20240412T102936 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 12-APR-24

Starting Control File and SPFILE Autobackup at 12-APR-24
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/autobackup/2024_04_12/o1_mf_s_1166092177_m1khxsws_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 12-APR-24

RMAN> 

Now, issue has been resolved and RMAN backup job is successfully completed.

I hope my written content will helped you. Your suggestions/feedback are most welcome from https://orakldba.com . Keep learning… Have a great day!!!
Please comment here for your any query related to above content. You can write to mail me through my Email.

Email :- orakldba@gmail.com
LinkedIn :- https://linkedin.com/in/prasantakirtaniya
Twitter :- https://twitter.com/prasantadba
Facebook Page :- https://www.facebook.com/orakldba
Website :- https://orakldba.com
ACE Profile :- https://ace.oracle.com/apex/ace/profile/prasantakirtaniya

1 thought on “ORA-19809: limit exceeded for recovery files”

  1. Hey Orakldba

    The document is very good. I have a suggestion which can help you to be more faster in production environments as we dont get so much time in production to do all this stuff.

    By the time we do all the above stuff, the application starts to show errors that its not able to write to db.

    Instead of that change your archive log location immediately when you see this error, once the you are free from the error then start running the backups.

    Reply

Leave a Comment