Error ORA-00312 and ORA-00312
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00392: log 4 of thread 2 is being cleared, operation not allowed
ORA-00312: online log 4 thread 2: '+DB1_RECO/prod12/onlinelog/log04a.log'
ORA-003122: '+DB1_RECO/prod12/onlinelog/log04b.log'
SQL> select group#,thread#,status from v$log;
GROUP# THREAD# STATUS
---------- ---------- ----------------
5 1 CLEARING_CURRENT
6 1 CLEARING
3 2 CLEARING
4 2 CLEARING_CURRENT
SQL> alter database clear unarchived logfile group 5;
alter database clear unarchived logfile group 5
*
ERROR at line 1:
ORA-00349: failure obtaining block size for
'+DB1_RECO/prod12/onlinelog/log05a.log'
ORA-15001: diskgroup "DB1_RECO" does not exist or is not mounted
ORA-15001: diskgroup "DB1_RECO" does not exist or is not mounted
SQL> alter database clear logfile group 5;
alter database clear logfile group 5
*
ERROR at line 1:
ORA-00349: failure obtaining block size for
'+DB1_RECO/prod12/onlinelog/log05a.log'
ORA-15001: diskgroup "DB1_RECO" does not exist or is not mounted
ORA-15001: diskgroup "DB1_RECO" does not exist or is not mounted
Above error because still logfile ponting to old logfile location so rename the logfile in mount state.
SQL> select group#,status,member from v$logfile;
GROUP# STATUS
---------- -------
MEMBER
--------------------------------------------------------------------------------
6
+DB1_RECO/prod12/onlinelog/log06a.log
use spool file with below query to rename all logfiles in DB
select 'alter database rename file '''||member||''' to '||'''+DATA/oradata/testr12/'|| REGEXP_REPLACE(''||member||'','.*/') ||''';' from v$logfile;
SQL> select group#,thread#,status from v$log;
GROUP# THREAD# STATUS
---------- ---------- ----------------
5 1 CLEARING_CURRENT
6 1 CLEARING
3 2 CLEARING
4 2 CLEARING_CURRENT
SQL> alter database clear unarchived logfile group 5;
Database altered.
SQL> alter database clear unarchived logfile group 4;
Database altered.
SQL> select group#,thread#,status from v$log;
GROUP# THREAD# STATUS
---------- ---------- ----------------
5 1 CURRENT
6 1 CLEARING
3 2 CLEARING
4 2 CURRENT
SQL> alter database open resetlogs;
Database altered.
SQL>
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00392: log 4 of thread 2 is being cleared, operation not allowed
ORA-00312: online log 4 thread 2: '+DB1_RECO/prod12/onlinelog/log04a.log'
ORA-003122: '+DB1_RECO/prod12/onlinelog/log04b.log'
SQL> select group#,thread#,status from v$log;
GROUP# THREAD# STATUS
---------- ---------- ----------------
5 1 CLEARING_CURRENT
6 1 CLEARING
3 2 CLEARING
4 2 CLEARING_CURRENT
SQL> alter database clear unarchived logfile group 5;
alter database clear unarchived logfile group 5
*
ERROR at line 1:
ORA-00349: failure obtaining block size for
'+DB1_RECO/prod12/onlinelog/log05a.log'
ORA-15001: diskgroup "DB1_RECO" does not exist or is not mounted
ORA-15001: diskgroup "DB1_RECO" does not exist or is not mounted
SQL> alter database clear logfile group 5;
alter database clear logfile group 5
*
ERROR at line 1:
ORA-00349: failure obtaining block size for
'+DB1_RECO/prod12/onlinelog/log05a.log'
ORA-15001: diskgroup "DB1_RECO" does not exist or is not mounted
ORA-15001: diskgroup "DB1_RECO" does not exist or is not mounted
Above error because still logfile ponting to old logfile location so rename the logfile in mount state.
SQL> select group#,status,member from v$logfile;
GROUP# STATUS
---------- -------
MEMBER
--------------------------------------------------------------------------------
6
+DB1_RECO/prod12/onlinelog/log06a.log
use spool file with below query to rename all logfiles in DB
select 'alter database rename file '''||member||''' to '||'''+DATA/oradata/testr12/'|| REGEXP_REPLACE(''||member||'','.*/') ||''';' from v$logfile;
SQL> select group#,thread#,status from v$log;
GROUP# THREAD# STATUS
---------- ---------- ----------------
5 1 CLEARING_CURRENT
6 1 CLEARING
3 2 CLEARING
4 2 CLEARING_CURRENT
SQL> alter database clear unarchived logfile group 5;
Database altered.
SQL> alter database clear unarchived logfile group 4;
Database altered.
SQL> select group#,thread#,status from v$log;
GROUP# THREAD# STATUS
---------- ---------- ----------------
5 1 CURRENT
6 1 CLEARING
3 2 CLEARING
4 2 CURRENT
SQL> alter database open resetlogs;
Database altered.
SQL>
Comments
Post a Comment