Tuesday, 19 June 2012

ORA-00257: archiver error. Connect internal only, until freed


While trying to connect to the database, we get the below mentioned error:

ERROR:
ORA-00257: archiver error. Connect internal only, until freed.

Cause:


-       The error is caused by the fact that the database archiver process is unable to archive the current online redolog due to lack of space in the destination for the archivelogs.

-       The flash_recovery_area is full.

Applicable to 9i, 10g and 11g database versions.

Solution:

The basic idea is to free space so as to make room for new archiving to happen. This can be addressed in multiple ways.

-       Allow more space in the DB_RECOVERY_FILE_DEST with the DB_RECOVERY_FILE_DEST_SIZE parameter :

                                           alter system set db_recovery_file_dest_size=5G ;

-       Imagine a situation where the space increased in step 1 gets filled, ie, 5 GB. Set an alternative archiving destination, so that when the primary destination is full, archiving is automatically  performed to the alternate destination:

                            Following changes in parameter file can enable the same:

log_archive_dest_1='LOCATION=use_db_recovery_file_dest NOREOPEN ALTERNATE=LOG_ARCHIVE_DEST_2'
log_archive_dest_2='LOCATION=/other_dest_for_archiving'
log_archive_dest_state_1='enable'
log_archive_dest_state_2='alternate'
db_recovery_file_dest='/db01/mine/oracle/product/10.1.0/db_1/flash_recovery_area'
db_recovery_file_dest_size=5G



-       Check the archive_log_dest  and verify if the path mentioned exists and is valid.

-       Take a backup of the existing archive files (recommended) OR it can be deleted to make more free archiving space.

This can be done at the server level where files can be manually deleted. However incase of ASM storage with rman, below mentioned way is recommended (which would perform backup and then deleting):

                                  Example :

                                rman target sys/sys
                                 RMAN> backup archive log all ;
                                 RMAN> delete archive until time 'trunc(sysdate)';

Please refer : http://docs.oracle.com/cd/B19306_01/backup.102/b14192/bkup003.htm  for more details on RMAN archiving.

No comments:

Post a Comment