2 Replies Latest reply: Sep 28, 2006 9:30 AM by 429539 RSS

    Logmnr/capure error b'coz of corruption of redo log block

    387891
      Hi,

      We all know that capture process reads the REDO entries from redo log files or archived log files. Therefore we need to ahev db in ARCHIVELOG mode.
      In alert log file, I found error saying :

      Creating archive destination LOG_ARCHIVE_DEST_1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\LOCATION01\1_36.ARC'
      ARC0: Log corruption near block 66922 change 0 time ?
      ARC0: All Archive destinations made inactive due to error 354
      Fri Apr 04 12:57:44 2003
      Errors in file e:\oracle\admin\repf\bdump\trishul_arc0_1724.trc:
      ORA-00354: corrupt redo log block header
      ORA-00353: log corruption near block 66922 change 0 time 04/04/2003 11:05:40
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'

      As a normal practice, we do have multiplexing of redo log files at diff location, but even that second copy of redo log is of no use to recover the redo log. This explains redo log could not be archived, since it can't be read. Same is true even for Logmnr process, it could not read the redo log file and it failed. Now, we have wae to recover from this situation (as far as DB is concern, not Stream Replication), since the shutdown after this error was IMMEDIATE causing checkpoing, and rollback/rollforward is not required during system startup. (No instance recovery) We can make db NOARCHIVELOG mode, drop that particular group, and create new one, and turn db to ARCHIVELOG mode This will certainly serve the purpose as far as consistency of DB is concern.

      Here is a catch for Stream Replication. The redo log that got corrupted must be having few transaction which are not being archived, and each will be having corresponding SCN. Now, Capture Process read the info sequentially in order of SCN. Few transaction are now missed, and Capture process can't jump to next SCN skipping few SCN in between. So, we have to re-instantiate the objects on the another system which has no erros, and start working on it. My botheration is what will happen to those missed transaction on the another database. It's absolete loss of the data. In development I can manage that. But in real time Production stage, this is a critical situation. How to recover from this situation to get back the corrupted info from redo log ?

      I have not dropped any of the log group yet. B'coz I would like to recover from this situation without LOSS of data.

      Thanx, & regards,
      Kamlesh Chaudhary

      Content of trace files :


      Dump file e:\oracle\admin\repf\bdump\trishul_arc0_1724.trc
      Fri Apr 04 12:57:31 2003
      ORACLE V9.2.0.2.1 - Production vsnsta=0
      vsnsql=12 vsnxtr=3
      Windows 2000 Version 5.0 Service Pack 2, CPU type 586
      Oracle9i Enterprise Edition Release 9.2.0.2.1 - Production
      With the Partitioning, OLAP and Oracle Data Mining options
      JServer Release 9.2.0.2.0 - Production
      Windows 2000 Version 5.0 Service Pack 2, CPU type 586
      Instance name: trishul

      Redo thread mounted by this instance: 1

      Oracle process number: 16

      Windows thread id: 1724, image: ORACLE.EXE


      *** SESSION ID:(13.1) 2003-04-04 12:57:31.000
      - Created archivelog as 'E:\ORACLE\ORADATA\REPF\ARCHIVE\LOCATION02\1_36.ARC'
      - Created archivelog as 'E:\ORACLE\ORADATA\REPF\ARCHIVE\LOCATION01\1_36.ARC'
      *** 2003-04-04 12:57:44.000
      ARC0: All Archive destinations made inactive due to error 354
      *** 2003-04-04 12:57:44.000
      kcrrfail: dest:2 err:354 force:0
      *** 2003-04-04 12:57:44.000
      kcrrfail: dest:1 err:354 force:0
      ORA-00354: corrupt redo log block header
      ORA-00353: log corruption near block 66922 change 0 time 04/04/2003 11:05:40
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
      *** 2003-04-04 12:57:44.000
      ARC0: Archiving not possible: error count exceeded
      ORA-16038: log 2 sequence# 36 cannot be archived
      ORA-00354: corrupt redo log block header
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
      ORA-16014: log 2 sequence# 36 not archived, no available destinations
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
      ORA-16014: log 2 sequence# 36 not archived, no available destinations
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
      ORA-16014: log 2 sequence# 36 not archived, no available destinations
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
      ORA-16014: log 2 sequence# 36 not archived, no available destinations
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
      ORA-16014: log 2 sequence# 36 not archived, no available destinations
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
      ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG

      *************

      Dump file e:\oracle\admin\repf\udump\trishul_cp01_2048.trc
      Fri Apr 04 12:57:27 2003
      ORACLE V9.2.0.2.1 - Production vsnsta=0
      vsnsql=12 vsnxtr=3
      Windows 2000 Version 5.0 Service Pack 2, CPU type 586
      Oracle9i Enterprise Edition Release 9.2.0.2.1 - Production
      With the Partitioning, OLAP and Oracle Data Mining options
      JServer Release 9.2.0.2.0 - Production
      Windows 2000 Version 5.0 Service Pack 2, CPU type 586
      Instance name: trishul

      Redo thread mounted by this instance: 1

      Oracle process number: 30

      Windows thread id: 2048, image: ORACLE.EXE (CP01)


      *** 2003-04-04 12:57:28.000
      *** SESSION ID:(27.42) 2003-04-04 12:57:27.000
      TLCR process death detected. Shutting down TLCR
      error 1280 in STREAMS process
      ORA-01280: Fatal LogMiner Error.
      OPIRIP: Uncaught error 447. Error stack:
      ORA-00447: fatal error in background process
      ORA-01280: Fatal LogMiner Error

      **********************