This discussion is archived
2 Replies Latest reply: Sep 28, 2006 7:30 AM by 429539 RSS

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

387891 Newbie
Currently Being Moderated
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

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