Oracle GoldenGate Out-of-Place Patching
Author: Bobby Curtis, MBA
Date: October 17, 2023
Updated: January 23, 2025
Organization: RheoData
Table of Contents
PATCH SERVICEMANAGER VIA OGG_HOME
PATCHING DEPLOYMENT VIA OGG_HOME
Oracle GoldenGate is a real-time data integration and replication software that enables data movement and synchronization across heterogeneous databases and platforms. This installation documentation provides step-by-step instructions for out-of-place patching for Oracle GoldenGate binaries.
Patching an Oracle GoldenGate environment has improved over the years. With the current Oracle GoldenGate architecture on a microservices platform, patching has become more accessible. To patch an Oracle GoldenGate environment, using the out-of-place patching approach ensures operational readiness for the climate being patched.
An Oracle GoldenGate environment now consists of two home directories that an administrator needs to be aware of before patching. These homes are:
These home directories are essential for Oracle GoldenGate to function. The Oracle GoldenGate binary home ($OGG_HOME) must only be patched for patching.
Organizations need to patch their Oracle GoldenGate homes for patching to be effective. To do this without taking an outage within the replication environment, installing a second Oracle GoldenGate home is critical.
To install a second Oracle GoldenGate Home, organizations must install the Oracle GoldenGate binaries in a new directory structure (outside their existing Oracle GoldenGate home). This can be done by doing the following:
After downloading the required binaries, these binaries can be installed using the same processes an organization has established. For example, installing the binaries is done by a silent install process.
$ cd /tmp/ogg21cma/ggs*/Disk1
$ ./runInstaller -silent -ignoreSysPrereqs -ignorePrereq -showProgress -waitForCompletion -responseFile /tmp/oggcore1.rsp
Once the install is done, two Oracle GoldenGate homes will be within the same server.
With both Oracle GoldenGate homes in place, the next step is to patch the Second Home with the required patches. The following steps are used to install the Oracle GoldenGate patch to the Second Home:
$ unzip -q ./ p33846655_215000_Linux-x86-64.zip -d .
$ export ORACLE_HOME=$ORACLE_HOME
$ cd /tmp/33846655
$ $ORACLE_HOME/OPatch/opatch apply
$ $ORACLE_HOME/OPatch/opatch lsinventory
After validating that the patch has been installed, the next thing is to migrate the ServiceManager and associated deployments to the new Oracle GoldenGate home.
With the new second Oracle GoldenGate home patched, each corresponding deployment home must be migrated to the second Oracle GoldenGate home. This can be done in two different approaches – GUI and RESTful API. The most straightforward approach to performing the migration is using RESTful APIs.
Before migrating any deployments between Oracle GoldenGate homes, it is good to see what deployments exist on the server. This can be done using the following CURL command:
curl --location --request GET 'HTTP://<host>:<port>/services/v2/installation/deployments' \
--header 'Authorization: Basic <base64 string>'
The resulting output would be a list of deployments that the ServiceManager is responsible for:
{
"$schema": "api:standardResponse",
"links": [
{
"rel": "canonical",
"href": "http://<host>:<port>/services/v2/installation/deployments",
"mediaType": "application/json"
},
{
"rel": "self",
"href": " http://<host>:<port>/services/v2/installation/deployments ",
"mediaType": "application/json"
},
{
"rel": "describedby",
"href": " http://<host>:<port>/services/v2/installation/deployments ",
"mediaType": "application/schema+json"
}
],
"messages": [],
"response": {
"$schema": "ogg:installationDeployments",
"xagEnabled": false,
"deployments": [
{
"deploymentId": "cf638afd-252e-4c79-ad55-fbeccb5d0434",
"deploymentName": "Kafka",
"enabled": true,
"status": "running"
},
{
"deploymentId": "dc31de7c-39aa-4de2-a3df-5451e32ccef6",
"deploymentName": "ServiceManager",
"enabled": true,
"status": "running"
}
]
}
}
In this output from the CURL command, the "deploymentName" key will tell you the current deployment (s) installed on the host.
To patch the ServiceManager deployment, the deployment needs to reference the patched second Oracle GoldenGate home. To do this, the following CURL command can be executed:
curl -L -X PATCH 'http://<host>:<port>//services/v2/deployments/ServiceManager' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic <base64 string>' \
--data-raw '{
"oggHome":"/app/orabd1",
"status":"restart"
}'
This CURL command feeds raw data that tells Oracle GoldenGate to update the deployment with an updated Oracle GoldenGate home. Once the update has been completed, the ServiceManager will be restarted. After the restart, log in to the ServiceManager and confirm that the Oracle GoldenGate home for the ServiceManager has been updated.
Image 1 below shows what it would look like.
Image 1: ServiceManger Updated
Any associated deployments can be migrated after the ServiceManager has been patched and migrated to the new Oracle GoldenGate home. The only requirement for a deployment to be migrated is that the ServiceManager must be on the same or later version of Oracle GoldenGate. This means organizations can run multiple Oracle GoldenGate homes simultaneously, depending on their deployments.
To move a deployment, the process is the same as performed with the ServiceManager. To do this, the following CURL command can be executed:
curl -L -X PATCH 'http://<host>:<port>/services/v2/deployments/Kafka' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic b2dnYWRtaW46V0VsY29tZTEyMzQ1IyM=' \
--data-raw '{
"oggHome":"/app/orabd1",
"status":"restart"
}'
Once the deployment is restarted, all the Oracle GoldenGate processes (extract and replicat) will be upgraded to the patched versions of the binaries. To verify that the deployment was updated, check the ServiceManager and confirm that the Deployments section has an updated Oracle GoldenGate Home for the deployment.
Image 2 below shows what this would look like.
Image 2: Deployment Updated
Patching Oracle GoldenGate has always been an issue that takes time. Using Oracle GoldenGate with an out-of-place patching strategy, an organization can quickly patch an environment with minimal downtimes.