On a Data Guard Physical Standby, I noticed the following in the alert log:
Mon Jan 30 12:37:22 2017 Errors in file /u01/app/oracle/diag/rdbms/v1s/V1S1/trace/V1S1_arc1_105040.trc: ORA-00314: log 42 of thread 2, expected sequence# 37363 doesn't match 37361 ORA-00312: online log 42 thread 2: '+RECOC1/V1S/ONLINELOG/group_42.15446.927996415' ORA-00314: log 42 of thread 2, expected sequence# 37363 doesn't match 37361 ORA-00312: online log 42 thread 2: '+DATAC1/V1S/ONLINELOG/group_42.1051.927996411'
If you read metalink note:
ORA-00314: LOG 404 OF THREAD 4, EXPECTED SEQUENCE# 33808 DOESN’T MATCH 33543 (Doc ID 1077564.1)
It explains that the standby redo has a corrupt entry, due to a problem (instance crash, network problem) that happened, it was receiving sequence 33808 and was corrupted in the middle. Â So the header has info on sequence 33808 but current archive sequence # being transferred is 33543.
This was confirmed when I checked the trace file:
*** 2017-01-30 12:37:17.760 ----- START Event Driven Actions Dump ---- ---- END Event Driven Actions Dump ---- ----- START DDE Actions Dump ----- Executing SYNC actions ----- START DDE Action: 'DB_STRUCTURE_INTEGRITY_CHECK' (Async) ----- Successfully dispatched ----- END DDE Action: 'DB_STRUCTURE_INTEGRITY_CHECK' (SUCCESS, 0 csec) ----- Executing ASYNC actions ----- END DDE Actions Dump (total 0 csec) ----- Reading mirrors of log member '+DATAC1/V1S/ONLINELOG/group_42.1051.927996411' (thread 2 seq 37363 block 1) ksfdrfms:Mirror Read file=+DATAC1/V1S/ONLINELOG/group_42.1051.927996411 fob=0x248d0ba68 bufp=0x7f4139596000 blkno=1 nbytes=512 ksfdafReadMirror: Read success from mirror side=1 logical extent number=0 disk=DATAC1_CD_01_V1OEX2CELADM01 path=o/10.1.11.14;10.1.11.15/DATAC1_CD_01_v1oex2celadm01 Mirror I/O done from ASM disk o/10.1.11.14;10.1.11.15/DATAC1_CD_01_v1oex2celadm01 DDE: Problem Key 'ORA 312' was flood controlled (0x1) (no incident) ORA-00312: online log 42 thread 2: '+DATAC1/V1S/ONLINELOG/group_42.1051.927996411' Read from log mirror 'DATAC1_CD_01_V1OEX2CELADM01' (thread 2 seq 37363 block 1) found corrupt block ksfdrnms:Mirror Read file=+DATAC1/V1S/ONLINELOG/group_42.1051.927996411 fob=0x248d0ba68 bufp=0x7f4139596000 nbytes=512
Where we can see the ‘found corrupt block’.
Luckily for me, Oracle resolved this itself by doing a RFS call for the archive redo log it required and then continued media recovery 🙂 :
Mon Jan 30 12:37:23 2017 RFS[2]: Selected log 42 for thread 2 sequence 37363 dbid 284911310 branch 891349070 Mon Jan 30 12:38:09 2017 Media Recovery Waiting for thread 2 sequence 37363 (in transit) Mon Jan 30 12:38:09 2017 Recovery of Online Redo Log: Thread 2 Group 42 Seq 37363 Reading mem 0 Mem# 0: +DATAC1/V1S/ONLINELOG/group_42.1051.927996411 Mem# 1: +RECOC1/V1S/ONLINELOG/group_42.15446.927996415
If you’re not so lucky you can resolve following the steps in the metalink note:
ORA-00314: LOG 404 OF THREAD 4, EXPECTED SEQUENCE# 33808 DOESN’T MATCH 33543 (Doc ID 1077564.1)
Which are:
Stopping recovery
Clear standby redo log
Restart recovery
Related Issue:
ORA-00322: log 41 of thread 2 is not current copy
If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.
Thanks
Zed DBA (Zahid Anwar)
Pingback: ORA-00322: log 41 of thread 2 is not current copy | Zed DBA's Blog