Hello
Following some maintenance on our server (change raid battery + reboot) my database (Oracle 11g) is not available anymore. I m a newbie in Oracle and I have been through the forum and I can t find the solution of my pb, I can t fix the ORA-19809 error since I can t connect to the DB as sysdba, all the solution that I have found need to be connected as sysdba. Please help I have been struggling on that for days and I seems to go in circle at the moment. Here is what I ve got :
C:>set oracle_sid=MYTIKKA
C:>sqlplus /nolog
SQL>connect / as sysdba
ERROR ORA-12560: TNS:protocol adapter error
Here are the errors I have in my c:/oracle/diag/rdbms/mytikka/mytikka/trace/alert_mytikka.log :
Errors in file c:oraclediagrdbmsmytikkamytikkatracemytikka_arc1_6420.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 30839808 bytes disk space from 10485760000 limit
ARC1: Error 19809 Creating archive log file to ‘C:ORACLEFLASH_RECOVERY_AREAMYTIKKAARCHIVELOG2015_03_31O1_MF_1_88141_%U_.ARC’
Errors in file c:oraclediagrdbmsmytikkamytikkatracemytikka_ora_7524.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 10485760000 bytes is 99.86% used, and has 14655488 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.
************************************************************************
Errors in file c:oraclediagrdbmsmytikkamytikkatracemytikka_ora_7524.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 30839808 bytes disk space from 10485760000 limit
ARCH: Error 19809 Creating archive log file to ‘C:ORACLEFLASH_RECOVERY_AREAMYTIKKAARCHIVELOG2015_03_31O1_MF_1_88141_%U_.ARC’
Errors in file c:oraclediagrdbmsmytikkamytikkatracemytikka_ora_7524.trc:
ORA-16038: log 1 sequence# 88141 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: ‘C:ORACLEORADATAMYTIKKAREDO01.LOG’
USER (ospid: 7524): terminating the instance due to error 16038
Tue Mar 31 16:08:06 2015
ARC3 started with pid=23, OS id=8104
Instance terminated by USER, pid = 7524
TNSPING seems to work
C:>tnsping mytikka
TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 — Production on 01-APR-2
015 02:32:14
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
C:oracleproduct11.2.0dbhome_1networkadminsqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 420025-w
eb1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = mytikka)
))
OK (0 msec)
C:>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 — Production on 01-APR-2015 02:35:21
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=420025-web1)(PORT=1521))
)
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 — Produ
ction
Start Date 31-MAR-2015 16:08:17
Uptime 0 days 10 hr. 27 min. 4 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File C:oracleproduct11.2.0dbhome_1networkadminlisten
er.ora
Listener Log File c:oraclediagtnslsnr420025-web1listeneralertlog.
xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=420025-web1)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC1521ipc)))
The listener supports no services
The command completed successfully
Here is my tnsnames.ora :
# tnsnames.ora Network Configuration File: C:oracleproduct11.2.0dbhome_1networkadmintnsnames.ora
# Generated by Oracle configuration tools.
MYTIKKA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 420025-web1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mytikka)
)
)
TSAPIDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 420025-web1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mytikka)
)
)
We usually watch the space usage of log archive destination very closely because the database will be suspended if the space is full. Particularly, if the log archive destination is USE_DB_RECOVERY_FILE_DEST, then you must watch the usage of Fast Recovery Area (FRA) instead to prevent ORA-19809.
When you meet the following error, you hit the space limit of FRA.
ORA-16038: log 2 sequence# 230348 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: 'd:/oracle/oradata/dbname/redo/redo02.log'
If you have already shutdown the database, the error prevents you from startup, it could be severe.
Let’s see the content of this error:
Description
ORA-19809: limit exceeded for recovery files
Cause
The limit for recovery files specified by the DB_RECOVERY_FILE_DEST_SIZE was exceeded.
Action
There are five possible solutions:
- Take frequent backup of recovery area using RMAN.
- Consider changing RMAN retention policy.
- Consider changing RMAN archived log deletion policy.
- Add disk space and increase DB_RECOVERY_FILE_DEST_SIZE.
- Delete files from recovery area using RMAN.
Then check current initialization parameters:
SQL> show parameter db_recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string d:oracleflash_recovery_areadbname
db_recovery_file_dest_size big integer 10G
Solutions
Several ways that can solve ORA-19809 are listed in the following:
1. Resize FRA
Resize FRA to a larger value if disks still have more space available for FRA. Assuming that your database cannot be opened normally.
SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=200G SCOPE=SPILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
Actually, starting up the database to MOUNT or NOMOUNT is no difference. Just make sure that the value does not exceed the overall disk space for FRA.
If your database is still online, then use SCOPE=BOTH
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=200G SCOPE=BOTH;
2. Delete Expired Archived Logs
Delete expired archive logs if there have no more space for archived logs. Assuming a lot of expired archive logs are available to be deleted.
[oracle@test ~]$ rman target /
...
RMAN> CROSSCHECK ARCHIVELOG ALL;
RMAN> DELETE EXPIRED ARCHIVELOG ALL;
Adding NOPROMPT right after DELETE makes RMAN to directly delete all archived logs without user’s confirmation.
If the space is still full, you need a stronger medication like the next one.
3. Delete All Archived Logs
Delete all archive logs, no matter what.
RMAN> DELETE ARCHIVELOG ALL;
Or do it directly without asking.
RMAN> DELETE NOPROMPT ARCHIVELOG ALL;
Then make the archived log list consistent.
RMAN> CROSSCHECK ARCHIVELOG ALL;
4. Switch FRA to Another Location
Change log archive destination to another location
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST=e:oracleflash_recovery_area2dbname SCOPE=SPFILE;
Don’t forget to bounce the database service in order to apply the new change.
5. Change Destination of Archived Logs
Again, you have to restart the database to make it work.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1=e:oracledbnamearchivelog SCOPE=SPFILE;
Preventive Actions
Here are preventive actions that you can consider to take to prevent ORA-19809.
1. Larger FRA or Destination
Set a reasonable size for FRA in advance. Just like we talked about in solution #1, #4 and #5.
2. Smaller Recovery Window
Impose a smaller recovery window on the retention period, if the current recovery windows is significantly big. For example, we change the recovery window from 60 days into 7 days.
RMAN> SHOW ALL;
...
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
Then we delete some obsolete backups like the following command according to the new policy immediately, or put it into your backup scripts.
RMAN> DELETE OBSOLETE;
Consequently, there should have fewer backups left in FRA.
3. Fewer Backup of Archived Logs
Change archived log deletion policy. Assuming the current setting is to backup 2 times, we set to 1 time or NONE.
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO SBT;
RMAN> DELETE OBSOLETE;
4. Apply NOLOGGING
Set tables NOLOGGING temporarily before importing or bulk data loading.
SQL> ALTER TABLE tablename1 NOLOGGING;
SQL> ALTER TABLE tablename2 NOLOGGING;
...
I hope this post can help you to solve ORA-19809.
Archive log destination full raised error 19809
Oracle database is not open its give error in alert log. Error occurred due to archive log space is full. Please check the location where archive log is configured.
You can check the location of archive log by connecting as SYS user
sqlplus sys as sysdba
password:
SQL>archive log list;
Solution:
Step 1: Go to RMAN terminal.
rman> CONNECT target /
rman> crosscheck archivelog ALL;
rman> DELETE expired archivelog ALL;
After delete some archive log which expired if some space released for sufficient work then you can continue.
Other wise you copy some needed archive in other location.then use the following command for delete archive up to specific date:
Before one day:
RMAN> delete archivelog all completed before 'SYSDATE-1';
Before two day:
RMAN> delete archivelog all completed before 'SYSDATE-2';
Another way
If you have enough space on drive you may also increase the size from 20 GB to 50 Gb.
Check the size of db_recovery_file_dest_size
show parameter db_recovery_file_dest_size
Increase the size of db_recovery_file_dest_size parameter
alter system set db_recovery_file_dest_size=50G;

Error log itself self explanatory, due to limit exceeded at DB_RECOVERY_FILE_DEST_SIZE database not able to open.
Error logs:
Errors in file d:oracle_filesdiagrdbmstesttesttracetest_ora_6196.trc: ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 50111488 bytes disk space from 2307915776 limit ARCH: Error 19809 Creating archive log file to 'D:ORACLE_FILESFLASH_RECOVERY_AREATESTARCHIVELOG2017_06_27O1_MF_1_393_%U_.ARC' Errors in file d:oracle_filesdiagrdbmstesttesttracetest_ora_6196.trc: ORA-16038: log 3 sequence# 393 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 3 thread 1: 'D:DATABASETESTREDO031.LOG' ORA-00312: online log 3 thread 1: 'D:DATABASETESTREDO032.ORA' USER (ospid: 6196): terminating the instance due to error 16038 2017-06-27 12:51:40.592000 +05:30 Instance terminated by USER, pid = 6196
Error log itself self-explanatory, due to limit exceeded at DB_RECOVERY_FILE_DEST_SIZE database not able to open.
Solution:
Increase DB_RECOVERY_FILE_DEST_SIZE parameter size, and startup database. In my case 10G is sufficient.
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G SCOPE=BOTH
According to Oracle suggestions in ADRCI alert logs, you have following choices to clean up space from recovery area:
- Consider changing RMAN RETENTION POLICY. If you are using Data Guard, then consider changing RMAN ARCHIVELOG DELETION POLICY.
- Back up files to tertiary device such as tape using RMAN BACKUP RECOVERY AREA command.
- Add disk space and increase db_recovery_file_dest_size parameter to reflect the new space.
- 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.
Full error logs:
Starting ORACLE instance (normal) LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 Picked latch-free SCN scheme 3 2017-06-27 12:51:31.042000 +05:30 Using LOG_ARCHIVE_DEST_1 parameter default value as USE_DB_RECOVERY_FILE_DEST Autotune of undo retention is turned on. IMODE=BR ILAT =27 LICENSE_MAX_USERS = 0 SYS auditing is disabled Starting up: Oracle Database 11g Release 11.2.0.1.0 - 64bit Production. Using parameter settings in server-side spfile D:ORACLE_FILESDB_HOME1DATABASESPFILETEST.ORA System parameters with non-default values: processes = 150 sessions = 248 shared_pool_size = 608M large_pool_size = 32M java_pool_size = 160M nls_length_semantics = "BYTE" control_files = "D:DATABASETESTCONTROL01.CTL" control_files = "D:ORACLE_FILESFLASH_RECOVERY_AREATESTCONTROL02.CTL" control_files = "D:DATABASETESTCONTROL03.CTL" db_block_size = 8192 db_cache_size = 608M compatible = "11.2.0.0.0" db_recovery_file_dest = "D:oracle_filesflash_recovery_area" db_recovery_file_dest_size= 2201M dml_locks = 800 undo_tablespace = "UNDOTBS1" undo_retention = 3600 remote_login_passwordfile= "EXCLUSIVE" db_domain = "" dispatchers = "(PROTOCOL=TCP) (SERVICE=testXDB)" job_queue_processes = 4 audit_file_dest = "D:ORACLE_FILESADMINTESTADUMP" audit_trail = "DB" db_name = "test" open_cursors = 2048 optimizer_index_cost_adj = 10 query_rewrite_enabled = "FALSE" query_rewrite_integrity = "enforced" pga_aggregate_target = 400M diagnostic_dest = "D:ORACLE_FILES" PMON started with pid=2, OS id=3156 VKTM started with pid=3, OS id=5324 at elevated priority VKTM running at (10)millisec precision with DBRM quantum (100)ms GEN0 started with pid=4, OS id=6464 DIAG started with pid=5, OS id=8932 DBRM started with pid=6, OS id=3824 PSP0 started with pid=7, OS id=8204 DIA0 started with pid=8, OS id=6920 MMAN started with pid=9, OS id=6040 DBW0 started with pid=10, OS id=4948 LGWR started with pid=11, OS id=8984 CKPT started with pid=12, OS id=7280 SMON started with pid=13, OS id=7588 RECO started with pid=14, OS id=6064 MMON started with pid=15, OS id=8720 starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'... MMNL started with pid=16, OS id=8104 starting up 1 shared server(s) ... ORACLE_BASE from environment = D:oracle_files ALTER DATABASE MOUNT 2017-06-27 12:51:35.391000 +05:30 Successful mount of redo thread 1, with mount id 2245910739 Database mounted in Exclusive Mode Lost write protection disabled Completed: ALTER DATABASE MOUNT ALTER DATABASE OPEN LGWR: STARTING ARCH PROCESSES ARC0 started with pid=20, OS id=4564 2017-06-27 12:51:36.787000 +05:30 ARC0: Archival started LGWR: STARTING ARCH PROCESSES COMPLETE ARC0: STARTING ARCH PROCESSES ARC1 started with pid=21, OS id=2748 ARC2 started with pid=22, OS id=8640 ARC1: Archival started ARC3 started with pid=23, OS id=3032 ARC2: Archival started ARC2: Becoming the 'no FAL' ARCH ARC2: Becoming the 'no SRL' ARCH ARC1: Becoming the heartbeat ARCH Errors in file d:oracle_filesdiagrdbmstesttesttracetest_arc2_8640.trc: ORA-19815: WARNING: db_recovery_file_dest_size of 2307915776 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. ************************************************************************ Errors in file d:oracle_filesdiagrdbmstesttesttracetest_arc2_8640.trc: ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 50094592 bytes disk space from 2307915776 limit ARC2: Error 19809 Creating archive log file to 'D:ORACLE_FILESFLASH_RECOVERY_AREATESTARCHIVELOG2017_06_27O1_MF_1_3 94_%U_.ARC' ARCH: Archival stopped, error occurred. Will continue retrying Errors in file d:oracle_filesdiagrdbmstesttesttracetest_arc2_8640.trc: ORA-16038: log 1 sequence# 394 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 1 thread 1: 'D:DATABASETESTREDO011.LOG' ORA-00312: online log 1 thread 1: 'D:DATABASETESTREDO012.ORA' 2017-06-27 12:51:37.810000 +05:30 ARC3: Archival started ARC0: STARTING ARCH PROCESSES COMPLETE Errors in file d:oracle_filesdiagrdbmstesttesttracetest_arc0_4564.trc: ORA-19815: WARNING: db_recovery_file_dest_size of 2307915776 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. ************************************************************************ Errors in file d:oracle_filesdiagrdbmstesttesttracetest_arc0_4564.trc: ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 50094592 bytes disk space from 2307915776 limit ARC0: Error 19809 Creating archive log file to 'D:ORACLE_FILESFLASH_RECOVERY_AREATESTARCHIVELOG2017_06_27O1_MF_1_3 94_%U_.ARC' Errors in file d:oracle_filesdiagrdbmstesttesttracetest_ora_6196.trc: ORA-19815: WARNING: db_recovery_file_dest_size of 2307915776 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. ************************************************************************ Errors in file d:oracle_filesdiagrdbmstesttesttracetest_ora_6196.trc: ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 50111488 bytes disk space from 2307915776 limit ARCH: Error 19809 Creating archive log file to 'D:ORACLE_FILESFLASH_RECOVERY_AREATESTARCHIVELOG2017_06_27O1_MF_1_3 93_%U_.ARC' Errors in file d:oracle_filesdiagrdbmstesttesttracetest_ora_6196.trc: ORA-16038: log 3 sequence# 393 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 3 thread 1: 'D:DATABASETESTREDO031.LOG' ORA-00312: online log 3 thread 1: 'D:DATABASETESTREDO032.ORA' USER (ospid: 6196): terminating the instance due to error 16038 2017-06-27 12:51:40.592000 +05:30 Instance terminated by USER, pid = 6196
Thanks, Stay Tune. 🙂
I faced ORA-19809 when
backup of one of my databases failed during archived log backup phase. In our
backup script we had a statement “ALTER SYSTEM ARCHIVE LOG CURRENT” just before
the backup command for archived redo logs. When ALTER SYSTEM ARCHIVE LOG
CURRENT statement was executed, following error stack was returned.
sql statement: alter system archive log current
released channel: dsk1 released channel: dsk2
RMAN-00571:
===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK
FOLLOWS ==============
RMAN-00571:
===========================================================
RMAN-03009: failure of sql command on default
channel at 02/09/2018 02:36:10
RMAN-11003: failure during parse/execution of SQL
statement: alter system archive log current
ORA-16038: log 9 sequence# 52279 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 9 thread 1: ‘/oradata/mydb/redolog07.log’
Recovery Manager complete.
Meanwhile we also saw
following errors/warning appearing in the alert log file
ARCH:
Archival stopped, error occurred. Will continue retrying
ORACLE
Instance mcrspos — Archival Error
ORA-16038:
log 9 sequence# 52279 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312:
online log 9 thread 1: ‘/oradata/mydb/redolog07.log’
Fri Feb
09 07:56:27 2018
ARCH:
Archival stopped, error occurred. Will continue retrying
ORACLE
Instance mydb — Archival Error
ORA-16014:
log 7 sequence# 52279 not archived, no available destinations
ORA-00312:
online log 9 thread 1: ‘/oradata/mydb/redolog07.log’
Fri Feb
09 07:56:57 2018
Errors in
file /u01/app/oracle/diag/rdbms/mydb/mydb/trace/mydb_m005_5103.trc:
ORA-19815:
WARNING: db_recovery_file_dest_size of 59055800320 bytes is 99.97% used, and
has 20135936 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.
After seeing above, it
can easily be judged that problem was with fast recovery area. If fast recover
area is full, no more archived logs could be created and ORA-19809 is evident.
To solve this problem the
suggestions appearing in alert log file can be follows. Either free up the fast
recovery area by deleting the files in the FRA, or space in the FRA can be
increased. A soft increase in the FRA space is to rest
DB_RECOVERY_FILE_DEST_SIZE to a value closer to the actual size of the FRA file
system, thus allowing more files to be created under FRA.
If archive generation has
increased over time, or flashback logs are there in the FRA for a guaranteed
restore point that you cannot drop, you might consider adding more space to the
FRA file system.
PROBLEM:
While taking rman backup, it failed with below error ( ORA-19809 & ORA-19804)
RMAN> backup archivelog all; Starting backup at 26-MAY-17 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=1942 RECID=1750 STAMP=944758808 input archived log thread=1 sequence=1943 RECID=1751 STAMP=944773254 channel ORA_DISK_1: starting piece 1 at 26-MAY-17 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of backup command on ORA_DISK_1 channel at 05/26/2017 11:53:47 ORA-19809: limit exceeded for recovery files ---------------------------------------- > ERROR ORA-19804: cannot reclaim 882983936 bytes disk space from 5368709120 bytes limit -----------> ERROR
SOLUTION:
1. Check the value of db_recovery_file_dest_size:
SQL> show parameter db_recovery NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string /archive/TESTDB db_recovery_file_dest_size big integer 5G
2. Check the space usage in recovery_dest
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.5 5
We can see out of 5G, 4.5G is already used. Let’s increase the value of db_recovery_file_dest to a higher value.
3. Increase db_recovery_file_dest
SQL> alter system set db_recovery_file_dest_size=8G;
System altered.
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)
-------------- ---------------
5.31985807 8
Run the rman job again, It will complete successfully.
RMAN> backup archivelog all; Starting backup at 26-MAY-17 current log archived using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=282 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=1942 RECID=1750 STAMP=944758808 input archived log thread=1 sequence=1943 RECID=1751 STAMP=944773254 input archived log thread=1 sequence=1989 RECID=1797 STAMP=944999626 input archived log thread=1 sequence=1990 RECID=1798 STAMP=944999713 channel ORA_DISK_1: starting piece 1 at 26-MAY-17 channel ORA_DISK_1: finished piece 1 at 26-MAY-17 piece handle=/archive/TESTDB/TESTDB/backupset/2017_05_26/o1_mf_annnn_TAG20170526T115514_dlhvcm48_.bkp tag=TAG20170526T115514 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07 Finished backup at 26-MAY-17 Starting Control File and SPFILE Autobackup at 26-MAY-17 piece handle=/archive/TESTDB/TESTDB/autobackup/2017_05_26/o1_mf_s_944999722_dlhvctjw_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 26-MAY-17 RMAN
if following error occurred on Oracle database or database hanged due to this error
Errors in file /opt/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_arc3_1202.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 44131328 bytes disk space from 4070572032 limit
ARC3: Error 19809 Creating archive log file to ‘/opt/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_29/o1_mf_1_330_%u_.arc’
check space is fill !!!!!!!!!
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
/
oracle@apt-amd-02:~> id
uid=1001(oracle) gid=1000(oinstall) groups=1000(oinstall)
oracle@apt-amd-02:~> rman
Recovery Manager: Release 11.2.0.1.0 — Production on Fri Apr 29 06:56:30 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
RMAN> connect target /
connected to target database: ORCL (DBID=1267852645)
RMAN> delete force archivelog until time ‘sysdate -1’; —- delete some archive log file
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=50 device type=DISK
List of Archived Log Copies for database with db_unique_name ORCL
=====================================================================
Key Thrd Seq S Low Time
——- —- ——- — ———
91 1 330 A 13-APR-11
Name: /opt/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_29/o1_mf_1_330_6vnqzs5c_.arc
92 1 331 A 13-APR-11
Name: /opt/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_29/o1_mf_1_331_6vnr0q87_.arc
93 1 332 A 13-APR-11
Name: /opt/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_29/o1_mf_1_332_6vnr0x7c_.arc
Do you really want to delete the above objects (enter YES or NO)? yes
deleted archived log
archived log file name=/opt/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_29/o1_mf_1_330_6vnqzs5c_.arc RECID=91 STAMP=749717522
deleted archived log
archived log file name=/opt/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_29/o1_mf_1_331_6vnr0q87_.arc RECID=92 STAMP=749717587
deleted archived log
archived log file name=/opt/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_29/o1_mf_1_332_6vnr0x7c_.arc RECID=93 STAMP=749717596
Deleted 3 objects
check all the file deleted ….
RMAN> delete force archivelog until time ‘sysdate -1’;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=50 device type=DISK
specification does not match any archived log in the repository
When you try to connect with Oracle Database and it throws an error message ORA-19809: limit exceeded for recovery files. It means archive destination (db_recovery_file_dest) has been full.
Following error will appear in the alert log file if you try to shutdown a database or switch a log file:
ORACLE Instance flash – Archival Error
ORA-16038: log 1 sequence# 45 cannot be archived
ORA-19809: limit exceeded for recovery files
To resolve this issue follow below steps:
Step-1: Issue Shutdown Abort command
SQL> conn sys/sys as sysdba Connected. SQL> shutdown abort; ORACLE instance shut down.
Step-2: Mount the Oracle Database
SQL> startup mount; ORACLE instance started. Total System Global Area 1071333376 bytes Fixed Size 1388352 bytes Variable Size 620757184 bytes Database Buffers 444596224 bytes Redo Buffers 4591616 bytes Database mounted.
Step-3: Format Column Size
SQL> col name format A50 SQL> col space_limit format A10 SQL> col space_used format A10
Step-4: Check Total Size and Used Space
SQL> select name, (space_limit/1024/1024) ||'MB' as Space_Limit, (space_used/1024/1024)||'MB' as Space_Used from v$recovery_file_dest; NAME SPACE_LIMI SPACE_USED -------------------------------------------------- ---------- ---------- C:oraclexeapporaclefast_recovery_area 10240MB 10230MB
Step-5: Increase Archive Log Destination Size or Delete Archive Log Files
If the space is full then you have two options:
Option-A) You can increase archive destination size (db_recovery_file_dest_size)
SQL> alter system set db_recovery_file_dest_size=4096m scope=both;
Or
Option-B) You can copy all the archive log files manually at some other location and delete all those archive log files using RMAN.
C:>rman target / Recovery Manager: Release 11.2.0.2.0 - Production on Thu Nov 20 15:16:56 2013 Copyright (c) 1982, 2009, Oracle. All rights reserved. connected to target database: XE (DBID=2712423074) RMAN> DELETE ARCHIVELOG ALL;
It will prompt you for Yes/No option, Type Yes and press Enter to delete all archive log files from your Hard Disk.
Note: Backup all the archive log files before issuing DELETE ARCHIVELOG ALL command.
Step-6: Open the database
SQL> alter database open; Database altered. SQL>
Now check your database functioning again by shutdown and startup command.
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup; ORACLE instance started. Total System Global Area 1071333376 bytes Fixed Size 1388352 bytes Variable Size 620757184 bytes Database Buffers 444596224 bytes Redo Buffers 4591616 bytes Database mounted.Database opened.
Posted by John Hallas on July 16, 2008
I have long been plagued by the parameter db_recovery_file_dest_size causing a problem when the size limit is exceeded.
As I have been working on development systems my normal work around was to free up some space in the db_recovery_file_dest and hope that
that the database would continue after the archiver logger error.
Invariably I needed to restart the database and hope that the problem resolves itself.
Today I decided to take some action and work out how to fix the problem.
I logged onto the ASM disk using asmcmd -p (the -p shows the current working directory) and moved to the archive log directory
ASCMD > cd FRA/SID/ARCHIVELOG/2008-07-16
ASCMD > rm thr* (I did not need to keep the archive logs as we had no need to backup/restore the database as it could be rebuilt if necessary)
ASCMD > YES (to confirm the prompt)
I then waited for the database to continue from the archiver error but this did not happen
The alert log typically shows an entry as follows :-
ORA-19815: WARNING: db_recovery_file_dest_size of 42949672960 bytes is 100.00% used, and has 0 remaining bytes available.
************************************************************************
You have following choices to free up space from flash 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.
************************************************************************
Errors in file /u00/app/oracle/diag/rdbms/sid/SID/trace/SID_ora_20214.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 1063256064 bytes disk space from 42949672960 limit
ARCH: Error 19809 Creating archive log file to ‘+FRA’
I am sure that this message is either new in 11g or has been improved because I have never noticed the 4th option before.
I had previously configured RMAN on the database and I realised that I needed to ensure that the RMAN catalog was aware that the files had been removed manually and space was now available.
RMAN > CHANGE ARCHIVELOG ALL VALIDATE;
RMAN > DELETE EXPIRED ARCHIVELOG ALL;
Metalink Document https://metalink.oracle.com/metalink/plsql/f?p=200:27:9917209390401703684::::p27_id,p27_show_header,p27_show_help:621248.995,1,1 has an unpublished note on the subject
Cause
~~~~~~~
We register all the information about what we place in the flash recovery area in
the rman repository/controlfile. If we determine that there is not sufficient space
in the recovery file destination, as set by dest_size then we will fail.
Just deleting the old backups/archive logs from disk is not sufficient as it’s the rman repository/controlfile
that holds the space used information.
Fix
~~~~
There are a couple of possible options.
1) Increase the parameter db_recovery_file_dest_size
2) Stop using the db_recovery_file_dest by unsetting the parameter.
( This assumes you never really wanted to use this option )
3) Remove the Entries from the rman repository/Controlfile
The removal is desribed in the RMAN documentation but this is a quick and
dirty way if you don’t have an rman repository – but could endanger your ability
to recover – so be careful.
a) delete unwanted archive log files from disk ( rm /del )
b) connect to rman
c) rman crosscheck archivelog all – marks the controlfile that the archives have been deleted
d) rman delete expired archivelog all – deletes the log entries identified above.
This entry was posted on July 16, 2008 at 1:30 pm and is filed under Oracle.
Tagged: archiver, db_recovery_file_dest_size, ORa-19804, ORA-19809, ORA-19815. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.
The Problem
Instance terminated due to error 16038 as its not able to archive the log in FRA:
ORA-19815: WARNING: db_recovery_file_dest_size of 99614720000 bytes is 100.00% used, and has 0 remaining bytes available. Sat Mar 8 00:57:07 2008 ************************************************************************ You have following choices to free up space from flash 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. ************************************************************************ Sat Mar 8 00:57:07 2008 Errors in file /usr/oracle/admin/ORAPTCMK/bdump/oraptcmk1_arc0_623454.trc: ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 308281344 bytes disk space from 99614720000 limit Sat Mar 8 00:57:07 2008 ARC0: Error 19809 Creating archive log file to '+DATA' Sat Mar 8 00:57:07 2008 Errors in file /usr/oracle/admin/ORAPTCMK/udump/oraptcmk1_ora_680508.trc: ORA-16038: log 17 sequence# 34003 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 17 thread 1: '+DATA/oraptcmk/onlinelog/redolog171.log' ORA-00312: online log 17 thread 1: '+FLRC/oraptcmk/onlinelog/redolog172.log' Sat Mar 8 00:57:07 2008 USER: terminating instance due to error 16038
The Solution
Default archive log destination was set to Flash Recovery Area and FRA is 100% used. There is no space to create additional archive log. Similar situation also occur if the database is up and running and archive log’s destination for FRA is full then the database will hang.
Other similar issue because of archiving is stuck because of FRA space pressure are
- Database Hangs
- Users not able to connect to database
- Not able to open the database
- FRA space related error in the alert.log file ( ORA-19809 )
Make more space in Flash Recovery Area or change the archivelog destination to outside Flash Recovery Area. By default Archive log are created in FRA if no specific log_archive_dest_n parameter was set and Flash Recovery Area is enabled.
SQL> show parameter db_recovery_file_dest NAME VALUE ---------------------- -------------------------- db_recovery_file_dest E:oracleproduct10.2.0flash_recovery_area db_recovery_file_dest_size 2G
SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 174 Next log sequence to archive 176 Current log sequence 176
If you are using RMAN for the database backup then check the space distribution in FRA. For example:
SQL>select file_type, percent_space_used as used,percent_space_reclaimable as reclaimable,
number_of_files as "number" from v$flash_recovery_area_usage;
FILE_TYPE USED RECLAIMABLE number
------------ ---------- ----------- ----------
CONTROLFILE 0 0 0
ONLINELOG 0 0 0
ARCHIVELOG 89.94 0 53
BACKUPPIECE 9.51 0 11
IMAGECOPY 0 0 0
FLASHBACKLOG 0 0 0
In the Above example almost all the space are used by Archivelogs and backup pieces and there is no space to reclaim. In this type of case you can
- Increase the FRA size
- Take backup backup of the archivelogs to different location
- If tape backup is a option then take backup of FRA to tape
- Change archivelogs destination out of FRA
- Delete archivelogs to make more space. ( should be the last option) and in case of standby database make sure those logs are already applied to standby
Usually archiving is configured to FRA for automatic management of archivelog files. This works well if you are using a standby configuration or using RMAN for backups so that there is a basis for archives to get obsolete and be cleaned up automatically from FRA. If you do not want to take advantage of automatic space management in FRA, you can set any non-FRA location for the archivelogs. For example
Set an archivelog destination:
SQL> alter system set log_archive_dest_1='LOCATION=E:oracleproduct' scope=both ;
Unset the default setting for FRA:
SQL> alter system set log_archive_dest_10='' scope=both;

