I recently built out a new installation of GoldenGate using the latest versions and features, namely the Integrated Capture and Replication capabilities for Oracle-to-Oracle Database. It also used the latest Oracle Database 12c Multi-tentant Pluggable database on both sides, which introduces some differences in how it is setup and operates. Lastly, I also setup the Oracle Enterprise Manager GoldenGate plugins to manage and monitor the entire DB 12c and GG platform (which was the least documented part of the process).
Here are some of my notes and experiences - hope it helps. For more info, here's a whitepaper describing some of the new Oracle GoldenGate 12c features and 12c DB optimizations:
I won't go into how to setup the new Oracle DB 12c Pluggable Databases, since there are lots of blogs and tutorials on the web. After getting past the usual steps, I setup two pluggable databases (PDB1 and PDB2) on two different servers, and used the HR sample schemas as the basis for replication. Here's a basic tutorial for DB12c setup:
For the GoldenGate setup, I installed the latest 220.127.116.11 version that is downloadable from OTN and eDelivery. The installs went smoothly on both servers, Just make sure you have enough memory because the new GG Integrated uses Xstreams instead of checkpoint tables, and your streams_pool_size will need to be > 1GB (increasing overall SGA and Memory reqs). GG will also want a significant amount of additional memory for it's own cache.
I basically followed a new Oracle tutorial MOS whitepaper to setup the GG initial load, Extracts, and Replicats. These instructions are good assuming you are somewhat familiar with GoldenGate. Here's the MOS note and supplemental the PDF provides step-by-step commands:
Another option is this Oracle By Example (OBE) tutorial:
If you are familiar with previous releases of GoldenGate with Oracle DB, this is where things are a little different when using DB12c and PDBs rather than the non-container DB with GoldenGate.
Unique requirements include:
Now came the tricky part of the project; setting up the OEM GoldenGate Plugin framework. I followed the usual steps to get the OEM agents deployed to the two servers, downloaded the GG plugin and deployed to agents, and then tried to follow the instructions on discovering the GG targets. All my version of OEM CC, Agents, Plugins, etc. are latest/greatest and here's the latest doc:
Yikes! Houston, we have a problem. I successfully setup the GG targets using the steps in the doc (tedious semi-manual discovery process but just follow the docs) but it was still very flaky (statuses wrong, missing stats, logging and configuration didn't work, etc.). After two days of deleting and redeploying, debugging, looking through logfiles, and searching MOS notes, here’s the basic situation:
I also had to upgrade the Java JRE to 1.7 build 76, and use it as the default Java stack for everything including GG and OEM Agent
There is a supplement to the MOS note at the following link that contains steps in Chapter 4 for upgrading and creating new JAGENT: http://docs.oracle.com/GoldenGate/1213/gg-monitor/GGAIN.pdf
Finally, the datastore has to be deleted and recreated (dirbdb deleted is necessary) and all the settings in /cfg/Configproperties.xml are just right i.e. fully qualified host names, usernames, passwords). See MOS Note 1487633.1 for some additional steps if discovery or target statuses start looking funky.
1. Login to ggsci prompt and stop all processes
2. Remove any initial load/replicats from ggsci prompt by running
info all tasks
delete replicat/extract [name]
3. Delete $GG_HOME/dirbdb directory.
4. Delete jagent.log, ogg_agent.log, and gsserr.log in $GG_HOME.
5. Login to ggsci prompt and run ‘create datastore’ command
6. Start all proceses, run
Randy Hardee, Vice President-Technology