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, delete archives from mine_stage. Output of step 2 will help you in identifying archives for deletion.