----------ORA-16014 ORA-00312
Archive process error: ORA-16014: log 3 sequence# 29808 not archived, no available destinations
ORA-00312: online log 3 thread 1: 'E:\BEBD1112\REDO03.LOG'
That would happen if the destination filesystem is full (i.e. at 100%) and Oracle cannot write the archivelog to that filesystem.
The general solution for this error is
- check the Disk space
- check where the archive location exists
- Try Clearing the Unarchived log group through the SQL :
alter database clear unarchived logfile group <<No>>;
- Bounce the Db
- Bounce the Server
---------------------------Archive Log Creation Fails With Errors ORA-16014, ORA-00312 [ID 1373314.1]
Symptoms
When attempting to run "alter system switch logfile;", the session hangs and following errors are reported in the alert log and trace file:
Alert log :
Sun Oct 30 03:01:55 2011
ARC1: Failed to archive log 3 thread 3 sequence 122674
Sun Oct 30 03:01:55 2011
Errors in file /apps/oracle/9.2.0/admin/cwld/bdump/cwld_arc1_889040.trc:
ORA-16014: log 3 sequence# 122674 not archived, no available destinations
ORA-00312: online log 3 thread 3: '/data/oradata/cwld/redo3.log'
Changes
In our example, the database was moved (to new SAN).
Cause
In this case, the issue is caused by an inaccessible/incorrect archiving directory.
SQL> show parameter log_archive_dest_1
NAME TYPE VALUE
-------------------- ------- ------------------------------
log_archive_dest_1 string location=/data3/oradata/cwld/archive/
However, that location does not exist and the archive log cannot be created.
Solution
Correct the archive path to match the new location, for example;
SQL> alter system set log_archive_dest_1 = 'location=/data1/oradata/archive/';
Or
Remove the old directory path on the operating system and create the new directory path to match the Oracle archiving location.
------------------------------------------------------------------------------------------
Archive process error: ORA-16014: log 3 sequence# 53538 not archived, no available destinations
ORA-00312: online log 3 thread 1: 'E:\BEBD1314\REDO03.LOG'
alter system set db_recovery_file_dest_size=200m;
------------------------------
select Group#,Member from V$logfile;
select group#, status,bytes/1024/1024 from v$log;
alter database add logfile group 4 ('E:\BEBD1314\REDO04.LOG') size 100m;
alter database add logfile group 5 ('E:\BEBD1314\REDO05.LOG') size 100m;
alter database add logfile group 6 ('E:\BEBD1314\REDO06.LOG') size 100m;
ALTER SYSTEM CHECKPOINT GLOBAL;
select group#, status from v$log;
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
alter system switch logfile;
alter system switch logfile;
select group#, status,bytes/1024/1024 from v$log;
Note: Can not drop current logfile should be inactive state;
ORA-00350 ORA-00312
SQL> alter database drop logfile group 3;
alter database drop logfile group 3
*
ERROR at line 1:
ORA-00350: log 3 of instance beb1314 (thread 1) needs to be archived
ORA-00312: online log 3 thread 1: 'E:\BEBD1314\REDO03.LOG'
16:36:22 SYS@eqdd011g SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;
ALTER DATABASE CLEAR LOGFILE GROUP 3
*
ERROR at line 1:
ORA-00350: log 3 of instance eqdd011g (thread 1) needs to be archived
ORA-00312: online log 3 thread 1: '/u01/app/oracle/admin/eqdd011g/oradata/eqdd011g/redo03.log'
Elapsed: 00:00:00.17
16:38:00 SYS@eqdd011g SQL> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;
Database altered.
Elapsed: 00:00:02.69
16:38:13 SYS@eqdd011g SQL> alter database drop logfile group 3;
Database altered.
alter database open;