Oracle GoldenGate 12c - New Release, New Features

The latest release of Oracle's data replication tool, GoldenGate 12c, has many improvements. The release coincided with the Oracle Data Integrator 12c release - and I wasn't about to let my colleague Jérôme Françoisse have all of the fun describing new features! This post will walk through the GoldenGate 12c features that I think are relevant to data warehouse and data migration work we typically see in the business intelligence world.

GUI Installer

First and foremost, the product has now graduated to using our friend the Oracle Universal Installer. There really isn't much to the installation itself, but it can also perform a couple of tasks that we used to have to do manually; create subdirectories and create the manager parameter file.

After unzipping the installation file and launching runInstaller, we are asked to choose which version of Oracle database, 11g or 12c, GoldenGate will be extracting from or replicating to (depending on whether the install is occurring on the source or target server). Next, choose a file directory location for the Oracle GoldenGate home. The install process will always create the Manager parameter file in this directory. But, if you choose the "Start Manager" checkbox, it will also add the Manager Port to the parameter file, create the subdirectories, set the library paths (which is why we specify the database location), and start-up the manager process.

GoldenGate 12c GUI Installation

Support for Oracle 12c Database Features

As you can see in the installation process, GoldenGate 12c now supports extracting from and applying to Oracle 12c Database. It also supports one of the great new features of Oracle 12c, multi-tenant container databases (CDB).

GoldenGate - Pluggable Databases

The GoldenGate extract can be set to pull from multiple pluggable databases (PDB) or containers in the source, combining the changed data into a single trail file. The replicat, however, will need to be split out into multiple process groups in order to apply the changes to a target pluggable database.

Extract New Features

Beyond overall improved performance for integrated capture, here are a few other notable extract enhancements.

Native DDL Capture

Now in integrated capture mode, when synchronizing source DDL changes, they are captured from the database logmining server. In OGG 11g, the DDL setup scripts installed triggers to capture the DDL changes. This intrusive action has now been eliminated.

Set Extract to a Specific SCN

The ADD EXTRACT and ALTER EXTRACT commands now have a new SCN option. This will allow you to point the extract process at a specific SCN in the source transaction log. Also, the START EXTRACT command has the options ATCSN or AFTERCSN, which work the same as they do with the replicat file. This can help in positioning the extract process after a failure, to skip transactions, or during the initial load of a target database.

Replicat New Features

Integrated Replicat

The new integrated mode for the replicat allows the process to use logical-change records (LCR), passed to the database inbound server via a lightweight streaming, built-in API, to apply changes to the target database. This increases the performance of the replicat process. It also handles referential integrity and DDL operations, ensuring the correct order when changes are applied, handling parent-child relationships and removing that responsibility from the GoldenGate administrator. Turn on integrated mode by using the INTEGRATED option with the ADD REPLICAT command. Additional options can be added to the replicat parameter file using DBOPTIONS INTEGRATEDPARAMS <OPTION...>.

Oracle GoldenGate Integrated Apply

Integrated apply mode is very easy to configure and is a great way to increase replicat processing performance.

Coordinated Mode

While the standard, classic replicat still exists, another option to increase performance for the apply process is to use coordinated mode. Similar to integrated mode, in coordinated mode the replicat applies changes in a multi-threaded, parallel fashion. The difference, though, is that coordinated mode continues to use the classic apply method - by constructing a SQL statement based on the trail file transaction to insert, update, or delete records in the target.

Oracle GoldenGate Coordinated Replicat

When adding the replicat, use the COORDINATED option to turn on coordinated mode. You can also control the maximum number of threads being used. The command SYNCHRONIZE REPLICAT can be used to synchronize all threads to the same position in the trail file, should there be a need during recovery of the replicat process after an unclean shutdown.

Duplicate Transactions

Use the option FILTERDUPTRANSACTIONS when starting the replicat process to ignore already processed transactions. Very useful when the extract is repositioned.

Other Notable Enhancements

SQL-92 Rules

GoldenGate 12c now supports SQL-92 rules for quotations. This means that in the parameter files, and obey files, single quotes are used for literals and double quotes are used for object names. This is noted because the rule for single-quoted literals was not enforced in previous versions and will require a review of how quotes are used in the parameter files prior to upgrading.

Security

GoldenGate encryption of both database username and passwords and trail files across TCP/IP has been enhanced, and made easier to implement. A credential store can be used to store the database user IDs and passwords, allowing an alias to be used in the parameter file rather than the old encryption key / encrypted password that was necessary in past versions. For trail file encryption, a wallet and master key approach is used to ensure the trail file data remains encrypted during transfer across the network. Each time a new trail file is created, a new encryption key is automatically generated.

Well, these are the features that stood out most when I reviewed the Oracle GoldenGate 12c Release Notes. Are there any new features that will make your life easier as a GoldenGate implementer/administrator that I may have missed? If so, let me know in the comments below.