
As organizations embrace multicloud strategies, Oracle Database@Google Cloud provides a seamless way to run Oracle databases alongside Google Cloud services.
Oracle Zero Downtime Migration (ZDM) is a recommended solution for migrating databases to Oracle Database@Google Cloud. Customers can choose either physical or logical migration methods based on their requirements.
For ZDM logical online migrations, Oracle GoldenGate(GG) enables real-time data replication between source and target databases, minimizing downtime during migration. This requires Oracle GoldenGate to be deployed in a Docker container on a virtual machine (VM).
In this blog, we’ll walk through the steps to deploy Oracle GoldenGate in Docker for a ZDM logical migration to Oracle Database@Google Cloud.
Prerequisites
It is important to have the required roles for creating a VM in Google Cloud.
You should also have an Oracle Account for login to Oracle Container Registry.
I have assumed that you have either deployed Oracle Database@Google Cloud instance or you have decided which region and VPC will be used for the deployment.
I have divided the blog as below sections.
Step 1 – Provision a VM
Step 2 – Deploying GG Docker
Step 1 – Provision a VM
We need a VM with in the same region as our Oracle Database@Google Cloud which we can use as a the host for GlodenGate Docker.
For ease of configuration , I would also recommend to provision VM in same VPC as our Oracle Database@Google Cloud.
I will use Oracle Linux 9 as the OS for my VM . You can use any supported OS for Oracle GoldenGate docker.
Navigate to VM Instances from the main menu of Google Cloud.

Select Create Instance on VM instances page to get started.

Provide below details on Machine configuration page.
Name – Name of the VM instance
Region – Select same region as your Oracle Database@Google Cloud.
Zone – You can leave it to the default.

Select Machine type and leave everything to default on the Machine configuration page.

On the Operating system and storage page , select Change to modify the Image and size.

I have made below changes. Please make selections based on your requirement.

On Networking page , I have selected same VPC as our Oracle Database@Google Cloud and also selected a subnet under the VPC.

I haven’t made any changes in any other sections .
Select Create to proceed with VM creation.

Our VM will be available in few minutes.
Step 2 – Deploying GG Docker
We now have a VM which we can use as host for GG docker.
2.1 Accept Oracle License agreement.
Login to Oracle Container registry using your Oracle Account credentials and select the respective container repository and accept the license agreement.
At the time of writing this blog , I have used goldengate-oracle-multicloud-migrations repository.
Please check the documentation about the licensing terms and reach out to Oracle Sales or Support for any clarity on Oracle GoldenGate Licensing for Database migration.
2.2 Create an Auth Token.
We need an Auth Token for login to Oracle Container Registry using docker/podman CLI.
Please follow documentation to generate an Auth Token.
2.3 Install and verify podman
# sudo dnf install podman
# sudo podman --version
Below is sample output.
[amalraj_puthenchira@ap-gg ~]$ sudo podman –version
podman version 5.6.0
2.4 Login to Oracle Container Registry
#sudo podman login container-registry.oracle.com
You will be asked to provide your Oracle Account username and the Auth Token (from 2.2).
Below is sample output.
[amalraj_puthenchira@ap-gg ~]$ sudo podman login container-registry.oracle.com
Username: abcdef.abcdef@abc.com
Password:
Login Succeeded!
2.5 Run the Docker image
# sudo podman run -d -p 443:443 -e OGG_ADMIN=oggadmin -e OGG_ADMIN_PWD=<password_of_your_choice> container-registry.oracle.com/goldengate/goldengate-oracle-multicloud-migrations:latest --name ogg26
where :
-d – runs the container in the background
-p 443:443 – The host port to map to the Oracle GoldenGate Service Manager port 443.
-e OGG_ADMIN – The name of the administrative account to create.
-e OGG_ADMIN_PWD- The password for the administrative account.
–name – assigns a container name.
container-registry.oracle.com/goldengate/goldengate-oracle-multicloud-migrations:latest – This is the repository name with tag . You can get this from the Oracle container registry website (look for pull command).
Above command will also perform the pull image as part the command.
Ensure that you replace <password_of_your_choice> with a password for oggadmin which should meet below requirements.
Password should contain at least: one lowercase [a..z] character, one uppercase [A..Z] character, one digit [0..9], and one special character [- ! @ % & * . # _]. Length should be between 8..30 characters.
Below is a successful output.
[amalraj_puthenchira@ap-gg ~]$ sudo podman run -d -p 443:443 -e OGG_ADMIN=oggadmin -e OGG_ADMIN_PWD=amal_RAJ_p12 container-registry.oracle.com/goldengate/goldengate-oracle-multicloud-migrations:latest –name ogg26
Trying to pull container-registry.oracle.com/goldengate/goldengate-oracle-multicloud-migrations:latest…
Getting image source signatures
Copying blob 6a6da6d26095 done |
Copying blob a1988877faf4 done |
Copying blob d0076733048a done |
Copying blob a7883e96750c done |
Copying blob 4a51fa118d73 done |
Copying blob 7afd96c8ddf8 done |
Copying blob 0d9067cd49f1 done |
Copying blob b4490c30eb3f done |
Copying blob e27a3f7c8f6b done |
Copying blob 911b2cb0b842 done |
Copying blob 866cfddb242f done |
Copying blob c608b1165a42 done |
Copying blob 292ca6236d5c done |
Copying blob a336f329aa16 done |
Copying blob 2e1da242c787 done |
Copying blob b7d7e63c24b8 done |
Copying blob 54fb8f76400c done |
Copying config 1a26829bf8 done |
Writing manifest to image destination
02c57c2b57ec0ee1b04f516ab82fe99c359bfc2f1f047e08ea4b531054c53504
2.7 Check the docker status
sudo podman ps
Below is sample output.
amalraj_puthenchira@ap-gg ~]$ sudo podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8a7782263b13 container-registry.oracle.com/goldengate/goldengate-oracle-multicloud-migrations:latest –name ogg26 17 hours ago Up 17 hours (healthy) 0.0.0.0:443->443/tcp, 8080/tcp, 8443/tcp stupefied_joliot
We have now successfully deployed Oracle GoldenGate docker on VM .
Please follow the steps in one of the below ZDM documentation(choose based on your target) for further configuration required for ZDM logical online migration.
Logical Online Migration to ADB-S on Oracle Database@Google Cloud.
Logical Online Migration to ExaDB-D on Oracle Database@Google Cloud.
Tips :
Please note that you should decide size of GG VM depending on your requirement . Please refer documentation for help.
Leave a Reply