Monday, January 13, 2020

Redo Log Corruption - Dropping Redo Log Is Not Possible (ORA-367 checksum error in log file header)



     I have faced redo log corrupted problem in database . nand can't drop the corrupted redo log . I have   recover the database given below following step:

     SQL> select GROUP#,THREAD#,BYTES from v$log;

    GROUP#    THREAD#      BYTES
---------- ---------- ----------
     1         1        52428800
     2         1        52428800
     3         1        52428800

SQL> select MEMBER from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log


Create new ones:

SQL > ALTER DATABASE
  ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/orcl/redo04.log')
      SIZE 5G;

SQL> ALTER DATABASE

  ADD LOGFILE GROUP 5 ('/u01/app/oracle/oradata/orcl/redo05.log')

      SIZE 5G;

SQL> ALTER DATABASE

  ADD LOGFILE GROUP 6 ('/u01/app/oracle/oradata/orcl/redo06.log')

      SIZE 5G;

Drop the old one:


SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> ALTER DATABASE DROP LOGFILE GROUP 1;
SQL> ALTER DATABASE DROP LOGFILE GROUP 2;
ERROR at line 1:

ORA-01624: log 2 needed for crash recovery of instance orcl (thread 1)

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02.log'
SQL> ALTER DATABASE DROP LOGFILE GROUP 3;

SQL> alter system checkpoint;
SQL> ALTER DATABASE DROP LOGFILE GROUP 2;
(Dropping group 2 is OK after checkpoint)



check the redo log group

SQL> select GROUP#,THREAD#,BYTES from v$log;


    GROUP#    THREAD#       BYTES

---------- ---------- ----------

     4          1     5368709120

     5          1     5368709120

     6          1     5368709120


Thanks.

No comments: