One of the new features that came out with Oracle GoldenGate 18.104.22.168.0 was the introduction of the Parallel Replicat. This new replicat is designed to help users quickly load data into their envrionments by using multiple parallel mappers and threads. Figure 1 shows you what this concept is about.
What you need to understand about this architecture is that we are still reading a single trail file. We are just providing a wider road with mulitple lanes for reading (mappers) and writing (appliers). In the middle of all this, the replicat is ensuring that the all transactions are ordered based on key dependancies (PK, FK and UK). This is to ensure that we have all transactions in the order that is required for each individual writer to apply independantly of each other. This is a huge difference from the integrated replicat, where the dependancy and writing was done within the database.
Additonally, the parallel replicat can be configured to run in one of two modes. The first mode is the “integrated” mode. This mode is similar to the current integrated replicat. The big difference is that the readers/writers are external of the database now, but we are still using the internals of the database to manage the processes.
The second mode of the parallel replicat is “non-integrated”. This means the replicat still runs in parallel, but now it is completly outside of the database. Take a moment and think where this could go ….
Now that, you understand the high-level view of the Parallel Replicat, lets take a look at how you can build one from the AdminClient.
The following steps are what you need to do from AdminClient to build a parallel replicat:
1. Open AdminClient
$ cd $OGG_HOME/bin
$ bin> ./adminclient
2. Login to the ServiceManager for the target you want to run against
adminclient> connect http://<host>:<port> deployment <deploment> as <security user> password <password>
3. Create the Parallel Replicat
adminclient> add replicat <group name>, integrated, parallel, exttrail pr
Note: After creating the replicat, you will see a warning as such: 2017-11-19T14:04:06Z INFO OGG-12029 The file with name ‘PREP1.prm’ does not exist.
Note: After creating the replicat, it will automatically show up in the associated Administration Service.
4. Edit Parameter file
adminclient> edit params prep1
5. Start Parallel Replicat
adminclient> start replicat prep1
After the replicat starts, you should see the number of threads that you specified for readers (mappers) and writers (appliers) in the report files.
Take a look and have fun with this new feature. Looks like it is going to be a really good one.
Just for reference, here is my parameter file for parallel replicat:
useridalias TGGATE2 domain TGGATE2
MAP PDB1.SOE.ADDRESSES, TARGET SOE1.ADDRESSES;
MAP PDB1.SOE.CUSTOMERS, TARGET SOE1.CUSTOMERS;
MAP PDB1.SOE.ORDERS, TARGET SOE1.ORDERS;
MAP PDB1.SOE.ORDER_ITEMS, TARGET SOE1.ORDER_ITEMS;
MAP PDB1.SOE.CARD_DETAILS, TARGET SOE1.CARD_DETAILS;
MAP PDB1.SOE.LOGON, TARGET SOE1.LOGON;
MAP PDB1.SOE.PRODUCT_INFORMATION, TARGET SOE1.PRODUCT_INFORMATION;
MAP PDB1.SOE.INVENTORIES, TARGET SOE1.INVENTORIES;
MAP PDB1.SOE.PRODUCT_DESCRIPTIONS, TARGET SOE1.PRODUCT_DESCRIPTIONS;
MAP PDB1.SOE.WAREHOUSES, TARGET SOE1.WAREHOUSES;
MAP PDB1.SOE.ORDERENTRY_METADATA, TARGET SOE1.ORDERENTRY_METADATA;