解決ORA-00338,ORA-00312


--測試庫異常無法啟動
SQL> startup;
ORACLE instance started.

Total System Global Area 4977278976 bytes
Fixed Size 2261768 bytes
Variable Size 989859064 bytes
Database Buffers 3976200192 bytes
Redo Buffers 8957952 bytes
Database mounted.
ORA-00338: log 2 of thread 1 is more recent than control file
ORA-00312: online log 2 thread 1: '/u02/oradata/GBK/redo02.log'

--查詢日志組
SQL> select group#,thread#,members,status from v$log;

GROUP# THREAD# MEMBERS STATUS
---------- ---------- ---------- ------------------------------------------------
1 1 1 INACTIVE
3 1 1 UNUSED
2 1 1 CURRENT
--清除日志組,切換redo日志
SQL> alter database clear logfile group 1;

Database altered.

SQL> alter database clear logfile group 2;
alter database clear logfile group 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance GBK (thread 1)
ORA-00312: online log 2 thread 1: '/u02/oradata/GBK/redo02.log'


SQL> alter database clear logfile group 3;

Database altered.

SQL> alter system switch logfile;
alter system switch logfile
*
ERROR at line 1:
ORA-01109: database not open


SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open


SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u02/oradata/GBK/system01.dbf'

---刪除日志組也不成功
SQL> alter database drop logfile group 2;
alter database drop logfile group 2
*
ERROR at line 1:
ORA-01623: log 2 is current log for instance GBK (thread 1) - cannot drop
ORA-00312: online log 2 thread 1: '/u02/oradata/GBK/redo02.log'

最終解決辦法:使用不完全恢復

SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;

System altered.

SQL> startup force
ORACLE instance started.

Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 88082000 bytes
Database Buffers 192937984 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

SQL> alter database open resetlogs;

Database altered.

SQL> alter system set "_allow_resetlogs_corruption"=false scope=spfile;

System altered.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM