Migrate Oracle GoldenGate Classic to MicroServices

Migration Utility: (download the Migration Utility from MOS)

Prerequisites for the Migration Utility:

Before running the migration utility, ensure the following:

  • Java Version: Java 1.8 JRE or higher, as provided by Oracle GoldenGate.
  • GoldenGate Version: GoldenGate 19.1 with Bundle Patch 200714 or later (for OGG MA).
  • MA Deployment: A new Microservices Architecture (MA) deployment must be created, and all services must be running.
  • Classic Deployment: All processes in the Classic deployment must be stopped. Any abended processes should be restarted and then properly shutdown.
  • Deployment Location: The Classic deployment must either be on the same server as the MA deployment or have its file system accessible on that server.
  • Environment Setup: The migration utility must be run from a shell or command prompt where the environmental variable is set for the MA deployment.

Migration Utility Restrictions:

The migration utility cannot handle processes with the following limitations:

  • PUMP Processes: Cannot migrate if they perform transformations or use dblogin.
  • Classic Extract: Deprecated in GoldenGate 19c and unsupported in versions 21c and above for MA targets greater than 19.1.
  • Unsupported Parameters: Processes using any of the following parameters:
    • MACRO
    • OBEY
    • MACROCHAR
  • Remote Configurations: Does not support remote trail files, remote tasks, or initial load operations.
  • Trail File Location: Trail files must be in ./dirdat or its subdirectories. If located elsewhere, they must be moved to ./dirdat, and you need to use the “convchk” utility to update the checkpoint for Extract and adjust any Replicat parameters accordingly.
  • INCLUDE Restrictions:
    • Nested INCLUDE statements are not supported.
    • INCLUDE can only be used in Extract and Replicat, not in Pump Extract.
[oracle@orclprd patch]$ ls -lrt
total 9448
-rw-r--r--. 1 oracle oinstall 9672403 Sep 16 23:04 p33565581_214000OGGRU_Linux-x86-64.zip
[oracle@orclprd patch]$ unzip p33565581_214000OGGRU_Linux-x86-64.zip
Archive:  p33565581_214000OGGRU_Linux-x86-64.zip
  inflating: GoldenGateMigrationUtilityOverview.pdf
  inflating: GoldenGateMigrationUtilityUserGuide.pdf
  inflating: ogg-migration-package-21.1.0.0.0.jar
  inflating: ReadMe.txt
  inflating: WhyGoldenGateMicroservices.pdf

Processes Status on Classic Architecture: (all classic processes need to stopped)

GGSCI (orclprd.localdomain as ggusr@orclprd) 42> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     STOPPED
EXTRACT     STOPPED     EEMP        00:00:00      00:00:08
EXTRACT     STOPPED     PEMP        00:00:00      00:00:44

All Parameter Files on Classic.

GGSCI (orclprd.localdomain as ggusr@orclprd) 44> sh ls -lrt dirprm/*

-rw-r--r--. 1 oracle oinstall   9 Nov 17  2023 dirprm/mgr.prm_old
-rw-r-----. 1 oracle oinstall  62 Nov 22  2023 dirprm/mgr.prm
-rw-r-----. 1 oracle oinstall 151 Nov 27  2023 dirprm/EINIT1.prm
-rw-r-----. 1 oracle oinstall 306 Sep 17 11:01 dirprm/eemp.prm
-rw-r--r--. 1 oracle oinstall 354 Sep 17 11:01 dirprm/PEMP.prm

Useful Migration Commands:

[oracle@orclprd patch]$ java -jar ogg-migration-package-21.1.0.0.0.jar -help

************************************************************************************
**          Oracle GoldenGate Classic to Microservices Migration Utility          **
**          Version 21.1.0.0.0 Build 73 at Tue Feb 08 04:27:02 UTC 2022           **
**                                                                                **
**  Copyright (C) 1995, 2021, Oracle and/or its affiliates. All rights reserved.  **
**                                                                                **
**              Operating system character set identified as UTF-8.               **
************************************************************************************

Usage:
-classicHome <value> -debug -dryrun
        Where:
                -classicHome Specifies the Classic Install Home Directory.
                -debug Specifies the Debug Level Logging.
                -dryrun Specifies the Simulate Migration but do not Migrate (Do a Dry Run).
java -jar ogg-migration-package-21.1.0.0.0.jar -classicHome $OGG_CLASSIC_HOME –dryrun 
java -jar ogg-migration-package-21.1.0.0.0.jar -classicHome $OGG_CLASSIC_HOME –debug

Migration Command:

java -jar ogg-migration-package-21.1.0.0.0.jar -classicHome $OGG_CLASSIC_HOME

Migration Advisory: Currently, two processes are running on Classic, with an additional parameter file (dirprm/EINIT1.prm) in the dirprm directory that is not in use. During migration, even unused parameter files will be attempted, leading to failure if there is no up-to-date checkpoint information.

To avoid migration errors, ensure that any unused parameter files are removed from the dirprm directory before starting the migration to MA.

If any parameter files contain unsupported parameters, the migration process will fail. Below is the dry-run output:

Dry run to migrate the Classic Processes to MA:

[oracle@orclprd patch]$ java -jar ogg-migration-package-21.1.0.0.0.jar -classicHome /u01/goldengate/db19 -dryrun

************************************************************************************
**          Oracle GoldenGate Classic to Microservices Migration Utility          **
**          Version 21.1.0.0.0 Build 73 at Tue Feb 08 04:27:02 UTC 2022           **
**                                                                                **
**  Copyright (C) 1995, 2021, Oracle and/or its affiliates. All rights reserved.  **
**                                                                                **
**              Operating system character set identified as UTF-8.               **
************************************************************************************

Command Entered: -classicHome /u01/goldengate/db19 -dryrun

Log File for this session is /u01/goldengate/ogg_ma_binary/patch/./Migration091724113708.log.
Simulation Mode (Dry Run) is Enabled. No Actual Migrations will Occur.

Enter Service Manager Credentials:
User Id:--> oggadmin
Password:->

Scanning for Microservices Deployments...
Using Deployment OGG21c [5753d5a4-b600-4ce7-b213-c4ba146954d2]

The following processes will be migrated to deployment OGG21c:
Extracts:
    EEMP
Pumps:
    EINIT1
    PEMP

Do you wish to continue? (yes/no):> yes

Migrating Credentials from /u01/goldengate/db19/dircrd.
Migrating Credentials for Domain OracleGoldenGate with alias of GGUSR_ORCLPRD.

Copying Trail Files from /u01/goldengate/db19/dirdat to /u01/goldengate/ogg12c_deploy/var/lib/data/.
23 trail files copied, total bytes copied 39,128.

Migrating EXTRACT EEMP to http://127.0.0.1:8001.
ERROR: Parameter file /u01/goldengate/ogg12c_deploy/etc/conf/ogg/eemp.prm already exists in the Target Microservices Deployment.

Migration of Extract EEMP Failed!

ERROR: PUMP EINIT1 is not eligible for migration for the following reason(s):
        Parameter SETENV is not valid for PUMP migration.
ERROR: Parameter file is not valid for PUMP.

Migration of Pump EINIT1 Failed!

Migrating PUMP PEMP to http://127.0.0.1:8002.

Use Default Pump Target URI of ogg://192.168.56.20:7809/services/v2/targets?trail=/u01/gg_target/hr? Press Enter to Accept or type Alternate URI:>
Creating Distribution Path for Pump PEMP.
Distribution Path Created Successfully. Setting trail sequence to 22 with an RBA of 1379.

Migration of Pump PEMP Completed Successfully.

Migrating Manager tasks to http://127.0.0.1:8001.

No tasks to migrate.

Migration of Manager Tasks Completed Successfully.

Do you wish to migrate your GLOBALS parameters? (yes/no):> yes

The Merge of GLOBALS has the following Issues:
   Classic GLOBALS Parameter GGSCHEMA Already exists in the Microservices GLOBALS and will NOT BE Merged.

Do you wish to continue migrating your GLOBALS parameters? (yes/no):> no

GLOBALS will not be migrated

Migration Simulation (Dry Run) Complete, 2 process would have migrated were successfully, 2 process migrations would have failed.

Run Migration Process:

The migration process was aborted due to an error. If any process encounters an issue during migration, the entire operation will be aborted to prevent partial migrations.

[oracle@orclprd patch]$ java -jar ogg-migration-package-21.1.0.0.0.jar -classicHome /u01/goldengate/db19

************************************************************************************
**          Oracle GoldenGate Classic to Microservices Migration Utility          **
**          Version 21.1.0.0.0 Build 73 at Tue Feb 08 04:27:02 UTC 2022           **
**                                                                                **
**  Copyright (C) 1995, 2021, Oracle and/or its affiliates. All rights reserved.  **
**                                                                                **
**              Operating system character set identified as UTF-8.               **
************************************************************************************

Command Entered: -classicHome /u01/goldengate/db19

Log File for this session is /u01/goldengate/ogg_ma_binary/patch/./Migration091724120304.log.
Enter Service Manager Credentials:
User Id:--> oggadmin
Password:->

Scanning for Microservices Deployments...
Using Deployment OGG21c [5753d5a4-b600-4ce7-b213-c4ba146954d2]

The following processes will be migrated to deployment OGG21c:
Extracts:
    EEMP
Pumps:
    EINIT1
    PEMP

Do you wish to continue? (yes/no):> yes

Migrating Credentials from /u01/goldengate/db19/dircrd.
Migrating Credentials for Domain OracleGoldenGate with alias of GGUSR_ORCLPRD.

Copying Trail Files from /u01/goldengate/db19/dirdat to /u01/goldengate/ogg12c_deploy/var/lib/data/.
23 trail files copied, total bytes copied 39,128.

Migrating EXTRACT EEMP to http://127.0.0.1:8001.
ERROR: Parameter file /u01/goldengate/ogg12c_deploy/etc/conf/ogg/eemp.prm already exists in the Target Microservices Deployment.

Migration of Extract EEMP Failed!

Rolling Back All Changes.
All Changes were Rolled Back Successfully.

Migration Aborted.

Fixed the above error and trigger again the Migration process:

[oracle@orclprd patch]$ java -jar ogg-migration-package-21.1.0.0.0.jar -classicHome /u01/goldengate/db19

************************************************************************************
**          Oracle GoldenGate Classic to Microservices Migration Utility          **
**          Version 21.1.0.0.0 Build 73 at Tue Feb 08 04:27:02 UTC 2022           **
**                                                                                **
**  Copyright (C) 1995, 2021, Oracle and/or its affiliates. All rights reserved.  **
**                                                                                **
**              Operating system character set identified as UTF-8.               **
************************************************************************************

Command Entered: -classicHome /u01/goldengate/db19

Log File for this session is /u01/goldengate/ogg_ma_binary/patch/./Migration091724120610.log.
Enter Service Manager Credentials:
User Id:--> oggadmin
Password:->

Scanning for Microservices Deployments...
Using Deployment OGG21c [5753d5a4-b600-4ce7-b213-c4ba146954d2]

The following processes will be migrated to deployment OGG21c:
Extracts:
    EEMP
Pumps:
    PEMP

Do you wish to continue? (yes/no):> yes

Migrating Credentials from /u01/goldengate/db19/dircrd.
Migrating Credentials for Domain OracleGoldenGate with alias of GGUSR_ORCLPRD.

Copying Trail Files from /u01/goldengate/db19/dirdat to /u01/goldengate/ogg12c_deploy/var/lib/data/.
23 trail files copied, total bytes copied 39,128.

Migrating EXTRACT EEMP to http://127.0.0.1:8001.
Checkpoint File(s) Copied and Converted Successfully.
Parameter File eemp.prm Saved Successfully.
EXTRACT EEMP patched.

Migration of Extract EEMP Completed Successfully.

Migrating PUMP PEMP to http://127.0.0.1:8002.

Use Default Pump Target URI of ogg://192.168.56.20:7809/services/v2/targets?trail=/u01/gg_target/hr? Press Enter to Accept or type Alternate URI:>
Creating Distribution Path for Pump PEMP.
Distribution Path Created Successfully. Setting trail sequence to 22 with an RBA of 1379.

Migration of Pump PEMP Completed Successfully.

Migrating Manager tasks to http://127.0.0.1:8001.

No tasks to migrate.

Migration of Manager Tasks Completed Successfully.

Do you wish to migrate your GLOBALS parameters? (yes/no):> no

GLOBALS will not be migrated

Migration Processing Complete, 3 process were migrated were successfully.

All Processes have been removed from classic OGG Home.

GGSCI (orclprd.localdomain as ggusr@orclprd) 47> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     STOPPED

Extract and Pump Processes added successfully on OGG MA:

Start the Pump Process:

Manually Create / Recreate the distribution Path Using AdminClient:

Existing DistPath List:

OGG (http://192.168.56.10:7830 OGG21c) 15> info all
Program     Status      Group       Type             Lag at Chkpt  Time Since Chkpt

ADMINSRVR   RUNNING
DISTSRVR    RUNNING
PMSRVR      RUNNING
RECVSRVR    RUNNING
EXTRACT     STOPPED     EEMP        INTEGRATED       00:00:00      02:02:07
EXTRACT     RUNNING     EHR         INTEGRATED       00:00:05      00:00:08
REPLICAT    RUNNING     RHR         PARALLEL INT     00:00:00      00:00:07

OGG (http://192.168.56.10:7830 OGG21c) 16> info distpath all
 PEMPDistPath      running

Get Details of the DISTPATH:

OGG (http://192.168.56.10:7830 OGG21c) 17> INFO DISTPATH PEMPDistPath DETAIL

 Path Name: PEMPDistPath
 Status: running
 Source: trail://127.0.0.1:8002/services/v2/sources?trail=./em
 Target:  ogg://192.168.56.20:7809/services/v2/targets?trail=/u01/gg_target/hr
 Size (MB): 100
    Sequence Length: 9
    Encryption Algorithm: None
 Begin Position: seqno: 22 rba: 1379
 Critical: no

 Process Id: 7114
 Thread Id: 14647
 Last Started: 2024-09-17T17:27:54.945Z
 Source Database Name: ORCLPRD
 Processing Lag: 0
 Since Lag Reported: 3
 Encryption Profile: LocalWallet

 Checkpoints:
   Input Checkpoint:
     Current:
        Name: em
        Sequence: 22
        Offset: 1379
        Path: /u01/goldengate/ogg12c_deploy/var/lib/data/./
        Sequence Length: 9
        Sequence Length Flip: no
        Timestamp: 0000-01-01T00:00:00.000Z

Delete and Add the DISTPATH:

OGG (http://192.168.56.10:7830 OGG21c) 18> DELETE DISTPATH PEMPDistPath
2024-09-17T20:06:17Z  INFO    OGG-08516  The path 'PEMPDistPath' has been deleted.

OGG (http://192.168.56.10:7830 OGG21c) 21> ADD DISTPATH DPNS SOURCE TRAIL://127.0.0.1:8002/services/v2/sources?trail=./em  TARGET ogg://192.168.56.20:7809/services/v2/targets?trail=/u01/gg_target/hr  AUTHENTICATION USERIDALIAS ORCL_GGUSR_20 DOMAIN OGG21c
2024-09-17T20:17:56Z  INFO    OGG-08511  The path 'DPNS' has been added.

OGG (http://192.168.56.10:7830 OGG21c) 22> info DISTPATH DPNS

 Path Name: DPNS
 Status: stopped
 Source URI: TRAIL://127.0.0.1:8002/services/v2/sources?trail=./em
 Target URI: ogg://192.168.56.20:7809/services/v2/targets?trail=/u01/gg_target/hr
 Authentication Method: USERIDALIAS ORCL_GGUSR_20 domain OGG21c
 Encryption Profile: LocalWallet

Reposition the SEQNO and RBA from existing one (Get the Seqno and RBA from Input Checkpoint).

OGG (http://192.168.56.10:7830 OGG21c) 25> ALTER DISTPATH DPNS, BEGIN SEQNO 22 RBA 1379
2024-09-17T20:21:19Z  INFO    OGG-08512  The path 'DPNS' has been updated.

OGG (http://192.168.56.10:7830 OGG21c) 26> INFO DISTPATH DPNS DETAIL

 Path Name: DPNS
 Status: stopped
 Source: TRAIL://127.0.0.1:8002/services/v2/sources?trail=./em
 Target:  ogg://192.168.56.20:7809/services/v2/targets?trail=/u01/gg_target/hr
 Authentication Method: USERIDALIAS ORCL_GGUSR_20 domain OGG21c
 Begin Position: seqno: 22 rba: 1379
 Critical: no

 Process Id: 7114
 Thread Id: 19570
 Last Started: 0000-01-01T00:00:00.000Z
 Source Database Name: UNKNOWN
 Processing Lag: 0
 Since Lag Reported: 212
 Encryption Profile: LocalWallet

 Checkpoints:
   Input Checkpoint:
     Current:
        Name: em
        Sequence: 22
        Offset: 1379
        Path: /u01/goldengate/ogg12c_deploy/var/lib/data/./
        Sequence Length: 9
        Sequence Length Flip: no
        Timestamp: 0000-01-01T00:00:00.000Z
     Starting:
        Name: em
        Sequence: 22
        Offset: 1379
        Path: /u01/goldengate/ogg12c_deploy/var/lib/data/./
        Sequence Length: 9
        Sequence Length Flip: no
        Timestamp: 0000-01-01T00:00:00.000Z
   Output Checkpoint:
     Current:
        Name: hr
        Sequence: 0
        Offset: 0
        Path: unknown
        Sequence Length: 9
        Sequence Length Flip: no
        Timestamp: 0000-01-01T00:00:00.000Z

Start the DISTPAH:

OGG (http://192.168.56.10:7830 OGG21c) 27> START DISTPATH DPNS
2024-09-17T20:27:41Z  INFO    OGG-08513  The path 'DPNS' has been started.

OGG (http://192.168.56.10:7830 OGG21c) 28> INFO DISTPATH ALL
 DPNS      running