Hi. I recently finished a project for a client who needed Update-Anywhere Repliction on one table between 4 DB2 version 9.1 databases at different locations. I thought I would share a high-level overview of the process I used, starting with 2-way replication between the first 2 databases.
I started with one Master database and one Replica. I set it up so that the Master could replicate changes to multiple Replicas as I added more. It is simply a matter of using the recapture option at the Master so that changes that occur at one Replica are recaptured at the Master and forwared to the other Replica tables. So, I turned on recapture at the Master and turned it off at the Replicas.
These are the basic steps I started with for one Master and one Replica. The other two replicas were added in much the same way.
- I set up server communications by cataloging the Master node and db on the Replica and visa versa.
- I used the Replication Center on the Master server for the rest of this process. I first had to configure the ‘Manage Passwords and Connectivity’ section by adding each node and database with the id’s and passwords.
- Create Capture control tables on the Master database using the Replication Center using the ‘Quick’ option.
- Register a table on the Master for Replication. I used all the defaults except I change the ‘Conflict detection level to ‘Standard’
- Create the Apply control tables on the Replica using the same method.
- Create a Subscription Set on the Apply control server (Replica). When you configure the Source to Target mapping, you change the target type to ‘Replica’
- After creating the source as a Replica, you will see that your Replica database also shows up as a Capture server now. This is because both Apply and Capture will be running here so that changes can be captured and applied to the Master.
- You can now open up the Capture Properties of the Replica table and uncheck the ‘Capture changes from replica target table’ box. This should only be checked on the Master.
- Start Capture on the Master server
- Start Apply on the Replica
- Start Capture on the Replica
The Master database will only have Capture processes running. Each Replica database will have both Capture and Apply.
There were only about 5k – 10k rows updated on this table per day so I didn’t have a good load to check performance. I can say that we had no problems with conflicts and scheduling replication to update every 2 minutes worked well.
Lesson Learned: The table we replicated had a generated IDENTITY column. This can’t be set up to replicate to a Replica table. I got around it by setting up the IDENTITY field so that it numbered from 1 – 999999 on the Master and 1000000 – 1999999 on the Replica. As I added more Replicas I change the Identity start number to 2000000 as so on. Then when setting up the Column Mapping on the Replica Apply database I didn’t replicate the ID column. It was simply generated upon insert.
I found that using DB2 Replication Center was a pretty simple way to set up 2-way replication and then add more Replicas for Update-Anywere replication. Starting Capture and Apply and reading logs was easier at the command line.
Let me know if you have any questions I could try to answer. Thanks!