Oracle GoldenGate Microservices Upgrade – 12.3.0.x/18.1.0.x to 19.1.0.0.x
Oracle GoldenGate Microservices have been out for a few years now. Many customers have pursued the architecture in many different industries and have this in many dfifernt use-cases and architectures. But what do you do when you want to upgrade your Oracle GoldenGate Microservices Architecture?
In a previous post, I wrote about how to upgrade Oracle GoldenGate Microservices using the GUI or HTML5 approach in this post – Upgrading GoldenGate Microservices Architecture – GUI Based (January 2018). Today, many of the steps are exactly the same as they were a year ago. The good news is that Oracle has documented the process a bit clearer in the lates upgrade document (here).
So why a new post on upgrading the architecture? Over the last few days, I’ve been looking into a problem that has been reported by customers. This problem affects the upgrade process, not so much in how to do the upgrade but when the upgrade is done.
In nutshell, the upgrade process for Oracle GoldenGate Microservices is done in these few steps:
1. Download the latest version of Oracle GoldenGate Microservices -> In this case: 19.1.0.0.1 (here); however, this approach will work with 19.1.0.0.2 as well.
2. Upload the software, if needed, to a staging area on the server where Oracle GoldenGate Microservices is running. Ideally, you should be upgrading from OGG 12c (12.3.x) or 18c (18.1.x).
3. Unzip the downloaded zip file to a temporary folder in the staging area
4. Execute runInstaller from the directory in the staging area. This will start the Oracle Universal Installer for Oracle GoldenGate.
5. Within the installation process, provide the Oracle GoldenGate Home for the Software Location.
6. Click Install to begin the installation into a New Oracle GoldenGate Home.
Note: At this point, you should have two Oracle GoldenGate Microservices Homes. One for the older version and one for the 19c version.
7. Login to the ServiceManager
8. Under Deployments -> select ServiceManager
9. Under Deployment Details -> select the pencil icon. This will open the edit field for the GoldenGate Home.
10. Edit the GoldenGate Home -> change to the new Oracle GoldenGate Microservices Home then click Apply.
This will force the ServiceManager to reboot.
At this point, you may be asking yourself, I’ve done everything but the ServiceManager has not come back up. What is going on?
If you have configured the ServiceManager as a daemon, you can try to start the ServiceManager by using the systemctl commands.
systemctl start OracleGoldenGate
This command will just return with nothing important. In order to find out if it start successfully or not, check the status of the service.
systemctl status OracleGoldenGate OracleGoldenGate.service - Oracle GoldenGate Service Manager Loaded: loaded (/etc/systemd/system/OracleGoldenGate.service; enabled; vendor preset: disabled) Active: failed (Result: start-limit) since Sun 2019-09-08 21:27:59 UTC; 2s ago Process: 3430 ExecStart=/opt/app/oracle/product/12.3.0/oggcore_1/bin/ServiceManager (code=killed, signal=SEGV) Main PID: 3430 (code=killed, signal=SEGV) Sep 08 21:27:59 OGG12c219cUpgrade systemd[1]: Unit OracleGoldenGate.service entered failed state. Sep 08 21:27:59 OGG12c219cUpgrade systemd[1]: OracleGoldenGate.service failed. Sep 08 21:27:59 OGG12c219cUpgrade systemd[1]: OracleGoldenGate.service holdoff time over, scheduling restart. Sep 08 21:27:59 OGG12c219cUpgrade systemd[1]: Stopped Oracle GoldenGate Service Manager. Sep 08 21:27:59 OGG12c219cUpgrade systemd[1]: start request repeated too quickly for OracleGoldenGate.service Sep 08 21:27:59 OGG12c219cUpgrade systemd[1]: <strong>Failed to start Oracle GoldenGate Service Manage</strong>r. Sep 08 21:27:59 OGG12c219cUpgrade systemd[1]: Unit OracleGoldenGate.service entered failed state. Sep 08 21:27:59 OGG12c219cUpgrade systemd[1]: OracleGoldenGate.service failed.
As you can tell the ServiceManager has failed to start. Why is this?
If you look at the output of the last systemctl status command, you see that the service is still referencing the old Oracle GoldenGate Microservices home.
Now the question becomes, how to I fix this?
The solution here is simple. Go to the deployment home for the ServiceManager and look under the bin directory. You will see teh registerServiceManager.sh script. Edit this script and change the variable OGG_HOME to match the new Oracle GoldenGate Home for 19c.
$ cd /opt/app/oracle/gg_deployments/ServiceManager/bin $ ls registerServiceManager.sh $ vi registerServiceManager.sh #!/bin/bash # Check if this script is being run as root user if [[ $EUID -ne 0 ]]; then echo "Error: This script must be run as root." exit fi # OGG Software Home location OGG_HOME="/opt/app/oracle/product/12.3.0/oggcore_1” <— Change to reflect new OGG_HOME
Wit the registerServiceManager.sh file edit, go back and re-run the file as the root user.
# cd /opt/app/oracle/gg_deployments/ServiceManager/bin # ./registerServiceManager.sh Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. ---------------------------------------------------- Oracle GoldenGate Install As Service Script ---------------------------------------------------- OGG_HOME=/opt/app/oracle/product/19.1.0/oggcore_1 OGG_CONF_HOME=/opt/app/oracle/gg_deployments/ServiceManager/etc/conf OGG_VAR_HOME=/opt/app/oracle/gg_deployments/ServiceManager/var OGG_USER=oracle Running OracleGoldenGateInstall.sh…
With the service now updated, you can start and check the service.
# systemctl start OracleGoldenGate # systemctl status OracleGoldenGate OracleGoldenGate.service - Oracle GoldenGate Service Manager Loaded: loaded (/etc/systemd/system/OracleGoldenGate.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2019-09-08 21:39:58 UTC; 2s ago Main PID: 21946 (ServiceManager) Tasks: 13 CGroup: /system.slice/OracleGoldenGate.service └─21946 /opt/app/oracle/product/19.1.0/oggcore_1/bin/ServiceManager Sep 08 21:39:58 OGG12c219cUpgrade systemd[1]: Started Oracle GoldenGate Service Manager. Sep 08 21:39:58 OGG12c219cUpgrade ServiceManager[21946]: 2019-09-08T21:39:58.509+0000 INFO | Configuring user authorization secure store path as '/opt/app/oracle/gg_deployments/Serv...ureStore/'. Sep 08 21:39:58 OGG12c219cUpgrade ServiceManager[21946]: 2019-09-08T21:39:58.510+0000 INFO | Configuring user authorization as ENABLED. Sep 08 21:39:58 OGG12c219cUpgrade ServiceManager[21946]: Oracle GoldenGate Service Manager for Oracle Sep 08 21:39:58 OGG12c219cUpgrade ServiceManager[21946]: Version 19.1.0.0.0 OGGCORE_19.1.0.0.0_PLATFORMS_190508.1447 Sep 08 21:39:58 OGG12c219cUpgrade ServiceManager[21946]: Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved. Sep 08 21:39:58 OGG12c219cUpgrade ServiceManager[21946]: Linux, x64, 64bit (optimized) on May 8 2019 18:17:50 Sep 08 21:39:58 OGG12c219cUpgrade ServiceManager[21946]: Operating system character set identified as UTF-8. Hint: Some lines were ellipsized, use -l to show in full.
At this point, you can now log back into the ServiceManager and confirm that the upgrade was done successfully.
Note: If you have your ServiceManager configured to be manually started and stopped, then you will need to edit the startSM.sh and stopSM.sh file. The OGG_HOME has to be changed in these files as well.
Enjoy!!!
Current Oracle Certs
Bobby Curtis
I’m Bobby Curtis and I’m just your normal average guy who has been working in the technology field for awhile (started when I was 18 with the US Army). The goal of this blog has changed a bit over the years. Initially, it was a general blog where I wrote thoughts down. Then it changed to focus on the Oracle Database, Oracle Enterprise Manager, and eventually Oracle GoldenGate.
If you want to follow me on a more timely manner, I can be followed on twitter at @dbasolved or on LinkedIn under “Bobby Curtis MBA”.
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.