Build a Parallel Replicat from #Oracle #GoldenGate #AdminClient

One of the new features that came out with Oracle GoldenGate 12.3.0.1.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.

Figure 1:

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&gt;:<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:

replicat PREP1
useridalias TGGATE2 domain TGGATE2
INSERTUPDATES
REPERROR(1, DISCARD)
MAP_PARALLELISM 2
MIN_APPLY_PARALLELISM 2
MAX_APPLY_PARALLELISM 8
SPLIT_TRANS_RECS 4
TARGETCATALOG PDB2;
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;

Enjoy!!!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Pardy DBA

ORA-00001: unique constraint (ORA.BLOG_TAGLINE_PK) violated

Martin Widlake's Yet Another Oracle Blog

Oracle performance, Oracle statistics and VLDBs

HeliFromFinland

Heli's thoughts on Database Designing, Oracle SQL Developer Data Modeler, User Groups etc.

Julian Dontcheff's Database Blog

The good DBA is one who learns from his mistakes, the best DBA is one who learns from other DBA's mistakes

Martins Blog

Trying to explain complex things in simple terms

The Data Warrior

Changing the world, one data model at a time. How can I help you?

Maaz Anjum's Blog

A life yet to be lived...

PeteWhoDidNotTweet.com

Stuff that interests me, if not you!

Uwe Hesse

about Database Technology

%d bloggers like this: