BAAS: Battle Against Archiver Stuck – ALTERNATE Archive Location
By Martin | April 27th, 2018 | Category: 10g, 11g, 11gR2, 12cR1, 12cR2, Oracle Database | No Comments »If you are managing volatile systems, you might have encountered Archiver-Stuck in the past.
1 2 | 0RA-00257:archiver error, connect internal only until freed ORA-16014:log 2 sequence# 1789 not archived, no available destinations |
If this is the case, you might be interested in a rarely used feature called “ALTERNATE Archive Locations”. This is a second independent archive log destination, that is only used in case the primary destination is failing (full). In that case, the dest_2 is automatically enabled, preventing stuck database. As soon as the archivelog backup has cleaned up the full DEST_1 destination, there is an AUTOMATIC FALLBACK to the DEST_1 destination.
1 2 3 4 | ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/disk1 MANDATORY MAX_FAILURE=1 ALTERNATE=LOG_ARCHIVE_DEST_2'; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ALTERNATE; ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=/disk2 MANDATORY ALTERNATE=LOG_ARCHIVE_DEST_1'; |
Testing:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Thread 1 advanced to log sequence 174 (LGWR switch) Current log# 3 seq# 174 mem# 0: /u01/app/oracle/oradata/CDB122/redo03.log 2018-04-27T17:18:47.685736+02:00 ARC3: Encountered disk I/O error 19502 2018-04-27T17:18:47.685800+02:00 ARC3: Closing local archive destination LOG_ARCHIVE_DEST_1 '/disk1/1_173_971869447.dbf' (error 19502) (CDB122) 2018-04-27T17:18:47.687074+02:00 Errors in file /u01/app/oracle/diag/rdbms/cdb122/CDB122/trace/CDB122_arc3_31260.trc: ORA-27072: File I/O error Additional information: 4 Additional information: 65536 Additional information: 315392 ORA-19502: write error on file "/disk1/1_173_971869447.dbf", block number 65536 (block size=512) 2018-04-27T17:18:47.816938+02:00 Errors in file /u01/app/oracle/diag/rdbms/cdb122/CDB122/trace/CDB122_arc3_31260.trc: ORA-19502: write error on file "/disk1/1_173_971869447.dbf", block number 65536 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 65536 Additional information: 315392 ORA-19502: write error on file "/disk1/1_173_971869447.dbf", block number 65536 (block size=512) ARC3: I/O error 19502 archiving log 2 to '/disk1/1_173_971869447.dbf' |
After the error, archivelogs are placed in /dir2 directory and as soon as space is available again, archive destination is switched back to /dir1 automatically.
Archiver Stuck never again, right?