Wednesday, April 2, 2008

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

Cause of the Problem:
The archiver process received an error while trying to archive a redo log. If the problem is not resolved soon, the database will stop executing transactions. The most likely cause of this message is the destination device is out of space to store the redo log file.

Solution of the Problem:

I try to demonstrate two types of Solution to this problem.

A)Without increasing DB_RECOVERY_FILE_DEST_SIZE.
B)By increasing DB_RECOVERY_FILE_DEST_SIZE.

A)Without increasing DB_RECOVERY_FILE_DEST_SIZE.

1. Check whether the database is in archive log mode and automatic archiving is enabled.
SQL> archive log list;

2. If archive destination is defined by USE_DB_RECOVERY_FILE_DEST, find the archive destination by :

SQL> show parameter db_recovery_file_dest;


Check what the value for db_recovery_file_dest_size.

3. Find the space used in flash recovery area by :

SQL> SELECT * FROM V$RECOVERY_FILE_DEST;

4. If SPACE_USED is equal to SPACE_LIMIT of db_recovery_file_dest, move the archive logs to different destination.

5. Archive all the log files
SQL> alter system archive log all;

6. Just switch the logs to verify:

SQL> alter system switch logfile;

Another approach of solving this type of problem without increasing DB_RECOVERY_FILE_DEST_SIZE is to delete (archive log) files from DB_RECOVERY_FILE_DEST if you are sure you have backups and the archived logs are no longer necessary.

Like,
$rman target /
RMAN>delete archivelog until time 'SYSDATE-1';

or,
RMAN>delete archivelog all;

B)By increasing DB_RECOVERY_FILE_DEST_SIZE.

1. See the path of flash recovery area.

SQL> show parameter db_recovery_file_dest;


2. Disable the Flash Recovery Area

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='';

3. Increase the Flash Recovery Area

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10g;


4. Enable the Flash Recovery Area

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/oradata1';

Related Documents
Archiving not possible: No primary destinations
ORA-00313: open failed for members of log group

2 comments:

  1. Personally, I think it's great that you are sharing this information. Those not running Oracle10g or later can go cry somewhere else or look for another freakin' website.

    ReplyDelete
  2. With regard to one item above...
    Oracle complains about this:
    "delete archive all;"

    but seemed to accept this:
    "delete archivelog all;"

    ReplyDelete