ORA-00255: Error Archiving Log — Causes, Fixes, and Prevention
ORA-00255 is an Oracle error that occurs when the ARCn (Archiver) background process fails to archive an online redo log file to the designated archive log destination. This error is critical in ARCHIVELOG mode databases because a failure to archive redo logs can eventually halt all database activity. It typically appears in the Oracle Alert Log alongside related errors such as ORA-00257 or ORA-16038.
Top 3 Causes and Fixes
1. Archive Destination Disk Full
The most common cause is insufficient disk space at the archive log destination. When the filesystem or ASM disk group runs out of space, the ARCn process cannot write new archive log files and raises ORA-00255.
Diagnose:
-- Check archive log destination and status
SELECT DEST_ID, DEST_NAME, STATUS, DESTINATION, ERROR
FROM V$ARCHIVE_DEST
WHERE STATUS != 'INACTIVE';
-- Check recent archived log sizes
SELECT SEQUENCE#,
ROUND((BLOCKS * BLOCK_SIZE) / 1024 / 1024, 2) AS SIZE_MB,
COMPLETION_TIME
FROM V$ARCHIVED_LOG
WHERE STANDBY_DEST = 'NO'
AND COMPLETION_TIME > SYSDATE - 1
ORDER BY COMPLETION_TIME DESC;
Fix with RMAN:
-- Delete archived logs already backed up (run in RMAN)
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-3';
-- Force retry of failed archive
ALTER SYSTEM ARCHIVE LOG ALL;
2. Flash Recovery Area (FRA) Space Exceeded
When DB_RECOVERY_FILE_DEST is used as the archive destination, exceeding DB_RECOVERY_FILE_DEST_SIZE will cause ORA-00255. The FRA holds archive logs, backups, and flashback logs, so it fills up quickly without regular cleanup.
Diagnose:
-- Check FRA usage
SELECT * FROM V$RECOVERY_FILE_DEST;
-- Check usage breakdown by file type
SELECT FILE_TYPE,
ROUND(SPACE_USED / 1024 / 1024 / 1024, 2) AS USED_GB,
ROUND(SPACE_RECLAIMABLE / 1024 / 1024 / 1024, 2) AS RECLAIMABLE_GB
FROM V$RECOVERY_AREA_USAGE;
Fix:
-- Temporarily increase FRA size
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 200G SCOPE=BOTH;
-- Clean up obsolete files in RMAN
DELETE OBSOLETE;
DELETE EXPIRED BACKUP;
CROSSCHECK ARCHIVELOG ALL;
DELETE EXPIRED ARCHIVELOG ALL;
3. Invalid or Inaccessible Archive Destination Path
If the path specified in LOG_ARCHIVE_DEST or LOG_ARCHIVE_DEST_n does not exist, or Oracle does not have write permission, archiving will fail. This commonly happens after server reboots where NFS mount points are not restored, or after migrations where directory structures change.
Diagnose and Fix:
-- Check current archive destination parameters
SHOW PARAMETER LOG_ARCHIVE_DEST;
-- Update to a valid, accessible path
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/u02/oradata/archive' SCOPE=BOTH;
-- Retry archiving immediately
ALTER SYSTEM ARCHIVE LOG ALL;
Verify OS-level permissions as well:
-- Check and fix directory permissions (via Host OS)
HOST ls -la /u02/oradata/archive/
HOST chown -R oracle:oinstall /u02/oradata/archive/
HOST chmod 750 /u02/oradata/archive/
Prevention Tips
1. Set up proactive monitoring alerts for archive space usage.
Use the query below in a scheduled job or Oracle Enterprise Manager to alert when FRA or archive destination usage exceeds 80%.
SELECT NAME,
ROUND(SPACE_LIMIT / 1024 / 1024 / 1024, 2) AS LIMIT_GB,
ROUND(SPACE_USED / 1024 / 1024 / 1024, 2) AS USED_GB,
ROUND((SPACE_USED / SPACE_LIMIT) * 100, 2) AS USED_PCT
FROM V$RECOVERY_FILE_DEST
WHERE (SPACE_USED / SPACE_LIMIT) * 100 > 80;
2. Configure multiple archive destinations with a minimum success policy.
Relying on a single archive destination is risky. Set up at least two destinations so that if one fails, archiving can still succeed on the other.
-- Configure dual archive destinations
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/u02/archive MANDATORY' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = 'LOCATION=/u03/archive OPTIONAL' SCOPE=BOTH;
-- Require at least one destination to succeed
ALTER SYSTEM SET LOG_ARCHIVE_MIN_SUCCEED_DEST = 1 SCOPE=BOTH;
Also, always include an archive log deletion policy in your RMAN backup scripts to automatically clean up archived logs after they have been backed up, preventing disk space from being silently exhausted.
Related Oracle Errors
- ORA-00257: Archiver error — often appears with ORA-00255 and can block all non-SYSDBA connections.
- ORA-19809: Recovery file limit exceeded in the FRA.
- ORA-16038: Log cannot be archived — often a companion error that pinpoints the specific log sequence failing.
📖 Want a more detailed guide?
Check out the full in-depth version (Korean) on oraerror.com — includes detailed analysis, additional SQL examples, and prevention tips.
Top comments (0)