Sunday, October 7, 2012

ERROR OGG-01028 Recovery record is missing from log with seqno when extract has reached log with seqno block size 512, and next_checkpoin t RBA


ERROR   OGG-01028  Recovery record is missing from log with seqno <no> when extract has reached log with seqno <no>, block size 512, and next_ checkpoint to RBA at <number>

when  we  manually stop the extract then   current/next checkpoint is set to a zero length record in redo nay cause this issue
The zero length record is skipped as the gg thinks that there is no data and the rbd moves to the next block skipping the current one but the recovery  code thinks that there is a data miss and then cause this error when we restart the extract

Step 1

Check the current status of the extract by using the
Syntax info extract <extract name> 

info extract setupe

EXTRACT    SETUPE    Last Started 2012-10-07 01:05   Status ABENDED
Checkpoint Lag       00:00:00 (updated 01:16:44 ago)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 1, Seqno 61, RBA 710938008
Step 2

Backup the files in the dirchk  directory
dirchk directory lays under the root directory of the gg where all the checkpoint's for the replicates and the extracts are store 
[oracle@fah gg]$ cd dirchk
[oracle@fah dirchk]$ cp SETUPE.cpe SETUPE_backup.cpe
[oracle@fah dirchk]$ cp SETUPE.cpb SETUPE_backup.cpb

Step 3

To find the current extract seq-no and  read write and recovery rba issue the show ch command  in the extract

SYNTAX: info <extract_name>,showch

GGSCI (fahdb.oasiserp.com) 4> info SETUPE,showch

EXTRACT    SETUPE    Last Started 2012-10-07 01:05   Status ABENDED
Checkpoint Lag       00:00:00 (updated 01:17:16 ago)
Log Read Checkpoint  Oracle Redo Logs
                     First Record         Thread 1, Seqno 61, RBA 710938008

Oracle RAC Redo Log

  Start up Checkpoint (starting position in the data source):
    Thread #: 1
    Sequence #: 61
    RBA: 710938008
    Time stamp:
    SCN: Not available
    Redo File: +FLASH/fah/onlinelog/group_1.260.792016705

  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
    Thread #: 1
    Sequence #: 61
    RBA: 710938008
    Timestamp:
    SCN: Not available
    Redo File: +FLASH/fah/onlinelog/group_1.260.792016705

  Current Checkpoint (position of last record read in the data source):
    Thread #: 1
    Sequence #: 61
    RBA: 710938008
    Timestamp:
    SCN: Not available
    Redo File: +FLASH/fah/onlinelog/group_1.260.792016705

Step4

we need to alter the current Checkpoint and the recovery Checkpoint to the next block number 
To find the next block number we have a calculation

Ceil(Current Rba /block_number)*(block_number)

In the above scenario we have the 

current RBA as  710938008
Block size     as  512

SQL> select ceil (710938008/512)*512  from dual;

CEIL(710938008/512)*512
-----------------------
              710938112
As the the above example the next RBA is 710938112  the block number and the seq number remains same

Step 5

SYNTAX: alter <extact_name  >, extseqno <seq#>, extrba <rba#>

The extract extract_name ,extseqno <the same seq number>,extrba <The new Rba which is calculated above >

GGSCI (fahdb.oasiserp.com) 8> alter extract SETUPE ,extseqno 61,extrba 710938112

ERROR: Only time stamps may be altered for checkpoints of all RAC instances. Use THREAD option to alter position per thread..

If we are using the Rac  instance or the single node HAS service then we need to specify the thread number while alerting the extract 

Step6

Check the size of the archive log and whether it is greater than the next rba which we have calculated if it is greater then proceed with the following steps

Alter the extract with the next rba

we need to alter the extract with the next rba to proceed

Synatx : alter extract <extract_name>,thread 1,extseqno <ext sequence number>,extrba <extrba number>


GGSCI (fah) 2> alter extract SETUPE ,thread 1, extseqno 61,extrba 710938112 [ next rba]
EXTRACT altered.


To Alter the extract with the io ext sequence 

we need to alter the extract io sequence with the current rba  we can proceed with yes when it Prompts you

Syntax   Alter extract <extract_name>,thread1 ,ioextseqno <current seq number > ,ioextrba <current rba>



GGSCI (fah) 3>  alter extract SETUPE ,thread 1, ioextseqno 61,ioextrba 710938008 [current rba]


2012-10-07 03:15:11  INFO    OGG-00988  WARNING: Unsupported operation. This mig EXTRACT: ioseq = 61 iorba = 710938008.
Are you sure you want to continue? yes
EXTRACT altered.



Step7

Check the changes in the extract by issuing the info extract_name ,showch
once you conform the changes had taken effect start the extract


GGSCI (fah) 4> start extract SETUPE

Sending START request to MANAGER ...
EXTRACT SETUPE starting

check the extract status


GGSCI (fahdb.oasiserp.com) 10>  info setupe

EXTRACT    SETUPE    Last Started 2012-10-07 03:15   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:05 ago)
Log Read Checkpoint  Oracle Redo Logs
                     2012-10-07 03:17:11  Thread 1, Seqno 62, RBA 896522768



   


No comments:

Post a Comment