Recreate plog
When a plog is corrupted and it is required to recreate the corrupted plog we have to reset mine to start parsing again from old redo/archivelog and generate plog. This will re-create all the plogs from the corrupted plog.
Example : Plog 1056
1. First of all shutdown mine and apply.
2. Get REDO LOG sequence with which plog 1056 was created. Run following command on MINE server.
SQL> select REDO_THREAD,REDO_SEQUENCE,PLOG_SEQUENCE from DBRSMINE_RLOG_PLOG_MAP where PLOG_SEQUENCE=1056;REDO_THREAD REDO_SEQUENCE PLOG_SEQUENCE ----------- ------------- ------------- 1 1056 1056
3. Delete records from DBRSAPPLY_PLOG_HISTORY on APPLY server. Copy the table to some temp table as backup.
SQL> create table DBRSAPPLY_PLOG_HISTORY_TEMP as select * from DBRSAPPLY_PLOG_HISTORY; Table created. SQL> SQL> delete from DBRSAPPLY_PLOG_HISTORY where SEQUENCE>=1056; 2 rows deleted. SQL> commit; Commit complete
.
4. Delete records from DBRSAPPLY_REDO_LOG_HISTORY on APPLY server. Copy the table to some temp table as backup.
Here SEQUENCE column denotes redo sequence. In RAC source, a plog is created from multiple redo's of different threads, therefore we have to delete records for all threads. ( 2 threads for 2 RAC source).
SQL> create table APP_REDO_HISTORY_TEMP as select * from DBRSAPPLY_REDO_LOG_HISTORY Table created SQL> SQL> delete from DBRSAPPLY_REDO_LOG_HISTORY where SEQUENCE>=1056 and THREAD=1; 2 rows deleted. SQL> commit; Commit complete. Â ------ FOR THREAD 2: (IN RAC SOURCE) ------ SQL> delete from DBRSAPPLY_REDO_LOG_HISTORY where SEQUENCE>=XXXX and THREAD=2;
5. Reset MINE using following command. Execute this command in console when mine and apply are NOT running.Â
dbvrep> ENGINE MINE RESET TO PLOG 1056
6. Delete plog files from mine and apply server as mine will generate new plogs for same sequneces.
oracle@dbvlin203[/home/oracle/reptest1/mine]: ls 1053.plog 1054.plog 1055.plog 1056.plog 1057.plog 1058.plog 1059.plog oracle@dbvlin203[/home/oracle/reptest1/mine]: rm -r 1056.plog 1057.plog 1058.plog 1059.plog oracle@dbvlin203[/home/oracle/reptest1/mine]: -- Repeat on APPLY --
7. Now you can start mine and apply. Mine will start parsing from redo 1056 again.
When fetcher is used, you don't have to bring down the fetcher and you need not  delete archives from mine_stage. The mine would automatically pick up the first archivelog from the mine_stage directory to generate the required PLOG and then move forward.