Oracle DBA Tips Corner |
Automatic Archiving does not Restart if Disk Space is Full
by Jeff Hunter, Sr. Database Administrator
Contents
Overview
If you attempt to manually archive the files you may receive the following
errors:
Solution
Explanation
All articles, scripts and material located at the Internet address of http://www.idevelopment.info is the copyright of Jeffrey M. Hunter
and is protected under copyright laws of the United States. This document may not be hosted on any other site without my express,
prior, written permission. Application to host any of the material elsewhere can be made by contacting me at jhunter@idevelopment.info.
I have made every effort and taken great care in making sure that the material included on my web site is technically accurate,
but I disclaim any and all responsibility for any loss, damage or destruction of data or any other property which may arise from
relying on it. I will in no case be liable for any monetary damages arising from such loss, damage or destruction.
Consider an Oracle database running in archive log mode with automatic archiving turned on.
When the archive log destination disk space becomes full, the automatic archiving will stop.
As per Oracle's documentation, this is the expected behaviour. At this point, a message
should appear:
ORA-00257: archiver error. Connect internal only, until freed.
When all of the online redo logs are filled up, the database will be in a hung state.
SVRMGR> archive log next
ORA-16014: log 1 sequence# 199 not archived, no available destinations
ORA-00312: online log 1 thread 1: '/u03/app/oradata/DBADB/redo_g01a.log'
SVRMGR> archive log all
ORA-16020: less destinations available than specified by LOG_ARCHIVE_MIN_SUCCEED_DEST
The following is a list of the possible ways to fix this problem:
alter system archive log all to '/u07/app/oradata/DBADB/archive';
NOTE: You MUST specify a location ref - ora-16014
LOG_ARCHIVE_DEST_n='<path> REOPEN=30'
Or run the following comand:
alter system set LOG_ARCHIVE_DEST_n = 'reopen'
alter system archive log stop;
alter system archive log start;
The error ORA-16014 is the real clue for this problem. Once the archive
destination becomes full the location also becomes invalid. Normally Oracle
does not do a recheck to see if space has been made available.
alter system archive log all to '/u07/app/oradata/DBADB/archive';
gives Oracle a valid location for the archive logs. Even after using this the
archive log destination parameter is still invalid and automatic achive does
not work. This solution is best for systems that do not archive regularly but
cannot be shutdown. You can also use this to allow you to do a Shutdown
immediate instead of Shutdown abort.
Tuesday, 25-Feb-2003 00:00:00 EST
Page Count: 42779