Thursday 17 April 2014

Resynchronizing an out-of-sync table - Oracle Golden Gate



In this procedure, there are two Replicat groups:

● The original group, known as groupA
● A new group that you will create, known as groupB

To resynchronize a table

1.Comment out the out-of-sync table in the original Replicat parameter file.

2.Stop the original Replicat and start it again so it continues processing the tables that are not out-of-sync.

STOP REPLICAT <groupA>
START REPLICAT <groupA>

3.Write down the timestamp on the source system.

4.Try to resolve any long-running transactions on the source out-of-sync table. You will be copying the source data to the target, and if transactions are open while the copy is being made, they will not be captured.

5. Start a copy of the source data.

6.Import the copy to the target table.

7.Create a new Replicat group for the out-of-sync table, using BEGIN to start at the source timestamp that you recorded step 3, and using the existing trail for EXTTRAIL.

ADD REPLICAT <groupB>, EXTTRAIL <existing trail>,BEGIN <yyyy-mm-dd hh:mm:ss>

8. Create a parameter file for the new group and include HANDLECOLLISIONS.
EDIT PARAMS <groupB>

9.Start the new Replicat group. START REPLICAT <groupB>

10.View the lag of the new group until it shows “At EOF, no more records to process.”
SEND REPLICAT <groupB>, GETLAG

11.Stop the new Replicat group.STOP REPLICAT <groupB>

12.Edit the parameter file of the new group to comment out or remove HANDLECOLLISIONS.

13.Start the new Replicat group.

START REPLICAT <groupB>

The next steps merge the table back with the others so that only one Replicat group is needed again.

14.Stop Extract. STOP EXTRACT <extract_group>

15.View the lag of each Replic at group until it shows “At EOF, no more records to process.”

SEND REPLICAT <groupA>, GETLAG
SEND REPLICAT <groupB>, GETLAG

16.Stop both Replicat groups.

STOP REPLICAT <groupA>
STOP REPLICAT <groupB>

17.Uncomment the newly synchronized table in the original Replicat parameter file.

18. Start Extract.

START EXTRACT <extract_group>

19.Start the original Replicat.

START REPLICAT <groupA>

20.Delete the new Replicat that you created.

DELETE REPLICAT <groupB>

Note : we can use find current_scan from source database and take export using the flashback parameter and copy the tables to target, while starting dummy replicat group we use start replicat after csn.

2 comments:

  1. very good... Excellent. Please share some more scenarios to dbaclass4u@gmail.com

    ReplyDelete
  2. This is one of the best articles. thanks for sharing. Please share link if you have more real time scenarios.

    ReplyDelete