Thursday 23 May 2013

ORA-16038: log 1 sequence# 35 cannot be archived ORA-19809: limit exceeded for recovery files

ORA-16038: log 1 sequence# 35 cannot be archived
ORA-19809: limit exceeded for recovery files

This error comes if there is no space  in  flash_recovery_area

  • Delete expired  archive log
  • Increase size of  flash_recovery_area


SQL> startup
ORACLE instance started.

Total System Global Area  910163968 bytes
Fixed Size                  2024976 bytes
Variable Size             281020912 bytes
Database Buffers          620756992 bytes
Redo Buffers                6361088 bytes
Database mounted.
ORA-16038: log 1 sequence# 35 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1:
'/home/oracle/10.2.0/product/oradata/MYDB/redo01.log'


You can check the total and used size using below query

SQL> select name
,floor(space_limit / 1024 / 1024) "Size MB"
,ceil(space_used / 1024 / 1024) "Used MB"
from v$recovery_file_dest
order by name  2    3    4    5
  6  /

NAME
--------------------------------------------------------------------------------
   Size MB    Used MB
---------- ----------
/home/oracle/10.2.0/product/flash_recovery_area
      2048       2034

Now you can increase the size of    flash_recovery_area

SQL> alter system set db_recovery_file_dest_size = 5G scope=both;

System altered.

SQL>  alter database open;

Database altered.


You can also  delete the  expired archive logs

 RMAN> crosscheck archivelog all;
 RMAN> delete expired archivelog all;

1 comment:

sri said...

very nice vanita............ very good explanation