Admin

Oracle Peoplesoft

Oracle GoldenGate 21c: Real-Time On-Prem to OCI Data Replication

Learn about Oracle GoldenGate 21c for real-time data replication between on-premises environments and OCI. Maximize your hybrid cloud strategy.

By Someshwar ThakurPublished: August 5, 202612 min read14 views✓ Fact Checked
Oracle GoldenGate 21c: Real-Time On-Prem to OCI Data Replication
Oracle GoldenGate 21c: Real-Time On-Prem to OCI Data Replication

Overview: Bridging the Hybrid Divide with Oracle GoldenGate 21c

In today's complex enterprise landscape, the strategic migration of critical applications like Oracle PeopleSoft to the cloud is a journey, not a leap. Organizations often operate in a hybrid model, with core systems remaining on-premises while new workloads and disaster recovery solutions leverage the agility and scalability of cloud platforms. For Oracle PeopleSoft environments, ensuring data consistency and real-time availability across these hybrid boundaries is paramount. This is where Oracle GoldenGate 21c emerges as an indispensable technology, providing robust, high-performance, and low-impact real-time data replication capabilities.

Oracle GoldenGate 21c represents the latest evolution in Oracle's powerful data integration suite, featuring a microservices architecture that enhances scalability, manageability, and security. It enables enterprises to capture, route, and deliver transactional data changes between heterogeneous databases with sub-second latency. For PeopleSoft applications, this translates into several critical use cases:

  • Zero-Downtime Migrations: Facilitate seamless migration of PeopleSoft databases from on-premises to Oracle Cloud Infrastructure (OCI) with minimal to no application downtime.
  • Disaster Recovery (DR): Maintain a real-time, transactionally consistent standby PeopleSoft environment in OCI, ready for failover in case of an on-premises outage.
  • Reporting and Analytics Offloading: Replicate PeopleSoft operational data to a separate database in OCI for reporting, analytics, or data warehousing, thereby reducing the load on the production OLTP system.
  • Application Upgrades: Support blue/green deployment strategies for PeopleSoft upgrades, replicating data to a new version database while the old version remains active.

This article delves into the practical implementation of Oracle GoldenGate 21c to establish real-time, unidirectional replication of PeopleSoft data from an on-premises Oracle database to a target Oracle database within OCI. We will cover the entire lifecycle, from prerequisites and network setup to detailed GoldenGate configuration and ongoing management, ensuring you have a publication-ready guide to tackle this critical architectural challenge.

Prerequisites for a Seamless Hybrid Replication

Before embarking on the GoldenGate configuration, a solid foundation of infrastructure and software components must be in place. Adhering to these prerequisites will prevent common pitfalls and ensure a smooth setup process.

1. Infrastructure and Network

  • On-Premises Source Environment:
    • Oracle Database 19c (or later) hosting PeopleSoft, with ARCHIVELOG mode enabled.
    • A dedicated server (physical or virtual) for Oracle GoldenGate 21c installation, or sufficient resources on the database server itself.
    • Reliable network connectivity (VPN or Oracle FastConnect) between the on-premises data center and OCI, ensuring low latency and high bandwidth.
    • Firewall rules configured to allow communication on specific ports (e.g., SSH 22, Oracle Listener 1521, GoldenGate Manager/Admin Server ports).
  • Oracle Cloud Infrastructure (OCI) Target Environment:
    • An OCI Virtual Cloud Network (VCN) with appropriate subnets (private preferred) configured.
    • Security Lists or Network Security Groups (NSGs) allowing ingress/egress for SSH (22), Oracle Listener (1521), and GoldenGate Manager/Admin Server ports (e.g., 7809 for Manager, 7810 for Admin Server, 7811 for Distribution Server, 7812 for Receiver Server).
    • An OCI Compute instance (e.g., VM.Standard2.2) running Oracle Linux 7 or 8, dedicated for Oracle GoldenGate 21c installation.
    • An OCI Database System (VMDB, ExaCC, or Autonomous Database) running Oracle Database 19c (or later) to serve as the target for PeopleSoft data.

2. Software and Database Configuration

  • Oracle GoldenGate 21c Software: Download the appropriate Oracle GoldenGate 21c media for Oracle Database from Oracle Support or eDelivery.
  • Oracle Database Client: Install an Oracle Database client (e.g., 19c) on both the on-premises GoldenGate server and the OCI GoldenGate server.
  • Database User Accounts:
    • A dedicated GoldenGate user in the source database with necessary privileges (e.g., GGADMIN_SRC).
    • A dedicated GoldenGate user in the target database with necessary privileges (e.g., GGADMIN_TGT).
    • A dedicated PeopleSoft schema user (e.g., SYSADM) in both source and target databases.
  • Supplemental Logging: Enable database-level and table-level supplemental logging on the on-premises source database.

3. User and Directory Setup (On-Premises and OCI GoldenGate Servers)

  • Create an operating system user (e.g., ogguser) to own the GoldenGate installation.
  • Create necessary directories for GoldenGate installation, trails, and parameter files.

Example OCI Network Setup (Conceptual):


# OCI CLI Example for VCN and Security List (conceptual, actual values will vary)
# Ensure you have OCI CLI configured with appropriate tenancy and user context

# Create VCN
oci network vcn create --compartment-id ocid1.compartment.oc1..aaaaaaaaxxxxxx --display-name "GG_Peoplesoft_VCN" --cidr-block 10.0.0.0/16 --dns-label ggpeoplesoftvcn

# Create a private subnet for the GoldenGate VM
oci network subnet create --compartment-id ocid1.compartment.oc1..aaaaaaaaxxxxxx --vcn-id ocid1.vcn.oc1..aaaaaaaaxxxxxx --display-name "GG_Private_Subnet" --cidr-block 10.0.1.0/24 --prohibit-public-ip-on-vnic true --dns-label ggprivsub

# Create a Security List for GoldenGate VM
oci network security-list create --compartment-id ocid1.compartment.oc1..aaaaaaaaxxxxxx --vcn-id ocid1.vcn.oc1..aaaaaaaaxxxxxx --display-name "GG_Security_List" --ingress-security-rules '[
    {
        "protocol": "6",
        "source": "0.0.0.0/0",
        "source-type": "CIDR_BLOCK",
        "tcp-options": { "destination-port-range": { "max": 22, "min": 22 } },
        "description": "Allow SSH from anywhere (restrict in production)"
    },
    {
        "protocol": "6",
        "source": "10.0.0.0/16",
        "source-type": "CIDR_BLOCK",
        "tcp-options": { "destination-port-range": { "max": 7812, "min": 7809 } },
        "description": "Allow GoldenGate Microservices from VCN"
    },
    {
        "protocol": "6",
        "source": "ONPREM_CIDR_BLOCK",
        "source-type": "CIDR_BLOCK",
        "tcp-options": { "destination-port-range": { "max": 7812, "min": 7809 } },
        "description": "Allow GoldenGate Microservices from On-Premises"
    },
    {
        "protocol": "6",
        "source": "10.0.0.0/16",
        "source-type": "CIDR_BLOCK",
        "tcp-options": { "destination-port-range": { "max": 1521, "min": 1521 } },
        "description": "Allow DB Listener from VCN"
    }
]' --egress-security-rules '[
    {
        "protocol": "all",
        "destination": "0.0.0.0/0",
        "destination-type": "CIDR_BLOCK"
    }
]'

# Launch a compute instance for GoldenGate (example)
oci compute instance launch --compartment-id ocid1.compartment.oc1..aaaaaaaaxxxxxx --availability-domain "Uocm:US-ASHBURN-AD-1" --shape "VM.Standard2.2" --image-id ocid1.image.oc1..aaaaaaaaxxxxxx --subnet-id ocid1.subnet.oc1..aaaaaaaaxxxxxx --display-name "GG_OCI_Server" --ssh-authorized-keys-file ~/.ssh/id_rsa.pub

Step-by-Step Implementation of Real-time Replication

1. On-Premises Source Database Setup

Connect to your on-premises PeopleSoft source database as a SYS user and perform the following:

a. Enable ARCHIVELOG Mode (if not already enabled)


SQL> SELECT LOG_MODE FROM V$DATABASE;
-- If not ARCHIVELOG, enable it:
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;

b. Enable Force Logging (recommended for GoldenGate)


SQL> ALTER DATABASE FORCE LOGGING;

c. Enable Supplemental Logging


SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; -- For PeopleSoft, 'ALL' is often safer for complex updates

d. Create GoldenGate User and Grant Privileges

This user will be used by the GoldenGate Extract process to connect to the source database.


SQL> CREATE USER GGADMIN_SRC IDENTIFIED BY "YourSecurePassword123" DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
SQL> GRANT CONNECT, RESOURCE TO GGADMIN_SRC;
SQL> GRANT ALTER ANY SUPPLEMENTAL LOGGING TO GGADMIN_SRC;
SQL> GRANT SELECT ANY DICTIONARY TO GGADMIN_SRC;
SQL> GRANT FLASHBACK ANY TABLE TO GGADMIN_SRC;
SQL> GRANT SELECT ON V_$ARCHIVED_LOG TO GGADMIN_SRC;
SQL> GRANT SELECT ON V_$DATABASE TO GGADMIN_SRC;
SQL> GRANT SELECT ON V_$LOGMNR_CONTENTS TO GGADMIN_SRC;
SQL9> GRANT SELECT ON V_$TRANSACTION TO GGADMIN_SRC;
SQL> GRANT EXECUTE ON DBMS_FLASHBACK TO GGADMIN_SRC;
SQL> GRANT UNLIMITED TABLESPACE TO GGADMIN_SRC;
SQL> GRANT SELECT ON SYS.GV_$DATABASE TO GGADMIN_SRC;
SQL> GRANT SELECT ON SYS.GV_$ARCHIVED_LOG TO GGADMIN_SRC;
SQL> GRANT SELECT ON SYS.GV_$LOGMNR_CONTENTS TO GGADMIN_SRC;
SQL> GRANT SELECT ON SYS.V_$DATABASE TO GGADMIN_SRC;
SQL> GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO GGADMIN_SRC;
SQL> GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO GGADMIN_SRC;
SQL> GRANT SELECT ON ALL_TABLES TO GGADMIN_SRC;
SQL> GRANT SELECT ON ALL_VIEWS TO GGADMIN_SRC;
SQL> GRANT SELECT ON ALL_SEQUENCES TO GGADMIN_SRC;
SQL> GRANT SELECT ON ALL_SYNONYMS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_TABLES TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_VIEWS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_SEQUENCES TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_SYNONYMS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_TAB_COLUMNS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_CONSTRAINTS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_CONS_COLUMNS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_INDEXES TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_IND_COLUMNS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_OBJECTS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_USERS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_ROLE_PRIVS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_SYS_PRIVS TO GGADMIN_SRC;
SQL> GRANT SELECT ON DBA_TAB_PRIVS TO GGADMIN_SRC;
SQL> GRANT ALTER SYSTEM TO GGADMIN_SRC; -- Required for adding supplemental log data at table level
SQL> GRANT SELECT ANY TABLE TO GGADMIN_SRC; -- For simplicity, but restrict to specific PeopleSoft schemas in production

For PeopleSoft, you might need to grant SELECT on specific PeopleTools tables (e.g., PSDBOWNER, PSLOCK) and all tables within the SYSADM schema.

2. OCI Target Database Setup

Connect to your OCI target database as a SYS user and perform the following:

a. Create GoldenGate User and Grant Privileges

This user will be used by the GoldenGate Replicat process to connect to the target database.


SQL> CREATE USER GGADMIN_TGT IDENTIFIED BY "YourSecurePassword456" DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
SQL> GRANT CONNECT, RESOURCE TO GGADMIN_TGT;
SQL> GRANT CREATE SESSION TO GGADMIN_TGT;
SQL> GRANT UNLIMITED TABLESPACE TO GGADMIN_TGT;
SQL> GRANT ALTER ANY TABLE TO GGADMIN_TGT;
SQL> GRANT CREATE TABLE TO GGADMIN_TGT;
SQL> GRANT CREATE SEQUENCE TO GGADMIN_TGT;
SQL> GRANT SELECT ANY TABLE TO GGADMIN_TGT; -- For simplicity, but restrict to specific PeopleSoft schemas in production
SQL> GRANT INSERT ANY TABLE TO GGADMIN_TGT;
SQL> GRANT UPDATE ANY TABLE TO GGADMIN_TGT;
SQL> GRANT DELETE ANY TABLE TO GGADMIN_TGT;
SQL> GRANT EXECUTE ON DBMS_FLASHBACK TO GGADMIN_TGT;

b. Create Checkpoint Table (for each Replicat process)

This table is crucial for GoldenGate to maintain its recovery point.


SQL> CONNECT GGADMIN_TGT/YourSecurePassword456@targetdb_tns
SQL> CREATE TABLE GGS_CHECKPOINT (
    LOG_FILE_NAME VARCHAR2(255),
    LOG_SEQUENCE NUMBER(22,0),
    RBA NUMBER(22,0),
    CHECKPOINT_TIMESTAMP TIMESTAMP(6),
    CURRENT_SCN NUMBER(22,0),
    TRANSACTION_ID VARCHAR2(255),
    PRIMARY KEY (LOG_FILE_NAME, LOG_SEQUENCE, RBA)
);

Alternatively, the ADD CHECKPOINTTABLE command in GGSCI will create this table automatically.

3. GoldenGate 21c Installation and Configuration (On-Premises Source)

Log in to your on-premises GoldenGate server as the ogguser.

a. Install GoldenGate 21c Microservices Architecture


# Navigate to the directory where you downloaded the GoldenGate zip file
cd /u01/app/ogg_downloads

# Unzip the GoldenGate software
unzip OGG_21.x_Linux_x64_Oracle_BDB.zip -d /u01/app/oracle/product/ogg21c_source

# Navigate to the installation directory
cd /u01/app/oracle/product/ogg21c_source/oggcore

# Run the installation script for Microservices Architecture
./create_root_service_instance.sh

# Follow the prompts:
# Enter the Oracle GoldenGate instance home (e.g., /u01/app/oracle/ogg_instances/source_ms)
# Enter the port number for the Administration Server (e.g., 7810)
# Enter the port number for the Distribution Server (e.g., 7811)
# Enter the port number for the Receiver Server (e.g., 7812)
# Enter the port number for the Metrics Server (e.g., 7813)
# Enter the username for the Administrator (e.g., oggadmin)
# Enter the password for the Administrator (e.g., YourSecureGGAdminPassword)

b. Configure Environment Variables

Add the following to ~/.bash_profile or ~/.profile for the ogguser:


export OGG_HOME=/u01/app/oracle/product/ogg21c_source/oggcore
export OGG_INSTANCE_HOME=/u01/app/oracle/ogg_instances/source_ms
export PATH=$PATH:$OGG_HOME/bin:$OGG_INSTANCE_HOME/bin
export LD_LIBRARY_PATH=$OGG_HOME/lib:$ORACLE_HOME/lib:/lib:/usr/lib

Source the profile: source ~/.bash_profile

c. Access the GoldenGate Admin Client (ggsci replacement)

GoldenGate 21c primarily uses the Admin Client (adminclient) for configuration, connecting to the Admin Server.


adminclient
# Connect to the Admin Server
connect https://localhost:7810 as oggadmin password YourSecureGGAdminPassword

d. Register the GoldenGate Home with the Database

This is crucial for integrated Extract.


DBLOGIN USERID GGADMIN_SRC@source_tns_alias PASSWORD YourSecurePassword123
REGISTER EXTRACT EPEOPLE_SRC DATABASE

e. Add and Configure the Primary Extract (EPEOPLE_SRC)

This Extract captures changes from the source database redo logs.


ADD EXTRACT EPEOPLE_SRC, INTEGRATED TRANLOG, BEGIN NOW
ADD EXTTRAIL /u01/app/oracle/ogg_instances/source_ms/dirdat/pe, EXTRACT EPEOPLE_SRC, MEGABYTES 100

EDIT PARAMS EPEOPLE_SRC

Paste the following into the parameter file:


EXTRACT EPEOPLE_SRC
SETENV (ORACLE_HOME="/u01/app/oracle/product/19.0.0/dbhome_1")
SETENV (TNS_ADMIN="/u01/app/oracle/product/19.0.0/dbhome_1/network/admin")
DBLOGIN USERID GGADMIN_SRC@source_tns_alias PASSWORD YourSecurePassword123
TRANLOGOPTIONS DBLOGREADER
TRANLOGOPTIONS EXCLUDE NOLOGGED OPERATIONS
ARCHIVELOGONLY
DDL INCLUDE MAPPED OBJS
DDLOPTIONS REPORT
TABLE SYSADM.PS_% ; -- Replicate all tables in the SYSADM schema (PeopleSoft)
TABLE HRPRD.PS_% ; -- If you have other PeopleSoft schemas

f. Add and Configure the Data Pump (PPEOPLE_DP)

This Data Pump reads the local trail and sends data to the remote Receiver Server in OCI.


ADD EXTRACT PPEOPLE_DP, EXTTRAILSOURCE /u01/app/oracle/ogg_instances/source_ms/dirdat/pe
ADD RMTTRAIL /u01/app/oracle/ogg_instances/source_ms/dirdat/pr, EXTRACT PPEOPLE_DP, MEGABYTES 100

EDIT PARAMS PPEOPLE_DP

Paste the following into the parameter file:


EXTRACT PPEOPLE_DP
SETENV (ORACLE_HOME="/u01/app/oracle/product/19.0.0/dbhome_1")
SETENV (TNS_ADMIN="/u01/app/oracle/product/19.0.0/dbhome_1/network/admin")
PASSTHRU
RMTHOST oci-gg-server.example.com, MGRPORT 7812, ENCRYPT AES256 KEYNAME OGG_ENCRYPTION_KEY
RMTTRAIL /u01/app/oracle/ogg_instances/target_ms/dirdat/pr
TABLE SYSADM.PS_% ;
TABLE HRPRD.PS_% ;

Note: RMTHOST should be the hostname or IP of your OCI GoldenGate server. MGRPORT refers to the Receiver Server port (7812 by default for 21c Microservices).

4. GoldenGate 21c Installation and Configuration (OCI Target)

Log in to your OCI GoldenGate server as the ogguser.

a. Install GoldenGate 21c Microservices Architecture

Follow the same installation steps as on-premises, adjusting paths and ports as needed for the target environment.


# Example installation path
unzip OGG_21.x_Linux_x64_Oracle_BDB.zip -d /u01/app/oracle/product/ogg21c_target
cd /u01/app/oracle/product/ogg21c_target/oggcore
./create_root_service_instance.sh
# Instance Home: /u01/app/oracle/ogg_instances/target_ms
# Admin Server Port: 7810 (can be same as source if on different hosts)
# Distribution Server Port: 7811
# Receiver Server Port: 7812 (crucial, this is where source pump connects)
# Metrics Server Port: 7813
# Admin Username/Password

b. Configure Environment Variables

Update ~/.bash_profile for the ogguser on the OCI server:


export OGG_HOME=/u01/app/oracle/product/ogg21c_target/oggcore
export OGG_INSTANCE_HOME=/u01/app/oracle/ogg_instances/target_ms
export PATH=$PATH:$OGG_HOME/bin:$OGG_INSTANCE_HOME/bin
export LD_LIBRARY_PATH=$OGG_HOME/lib:$ORACLE_HOME/lib:/lib:/usr/lib

Source the profile: source ~/.bash_profile

c. Create the Credential Store

This securely stores database login credentials.


adminclient
connect https://localhost:7810 as oggadmin password YourSecureGGAdminPassword

CREATE WALLET
ADD CREDENTIALSTORE USERID GGADMIN_TGT@target_tns_alias PASSWORD YourSecurePassword456 ALIAS oci_target_db

d. Add and Configure the Replicat (RPEOPLE_TGT)

This Replicat applies changes from the remote trail to the OCI target database.


ADD REPLICAT RPEOPLE_TGT, INTEGRATED, EXTTRAIL /u01/app/oracle/ogg_instances/target_ms/dirdat/pr, CHECKPOINTTABLE GGADMIN_TGT.GGS_CHECKPOINT

EDIT PARAMS RPEOPLE_TGT

Paste the following into the parameter file:


REPLICAT RPEOPLE_TGT
SETENV (ORACLE_HOME="/u01/app/oracle/product/19.0.0/dbhome_1")
SETENV (TNS_ADMIN="/u01/app/oracle/product/19.0.0/dbhome_1/network/admin")
DBLOGIN USERID ALIAS oci_target_db
HANDLECOLLISIONS
REPERROR (DEFAULT, ABEND)
MAP SYSADM.PS_% , TARGET SYSADM.PS_% ;
MAP HRPRD.PS_% , TARGET HRPRD.PS_% ;

HANDLECOLLISIONS is useful during initial synchronization but should be removed after the initial load is complete and real-time replication is stable.

5. GoldenGate Initial Load (Optional but Recommended)

For large PeopleSoft databases, an initial load using Oracle Data Pump is generally faster and more efficient than GoldenGate's initial load utility.

a. On-Premises (Source) - Export Data Pump


expdp GGADMIN_SRC/YourSecurePassword123@source_tns_alias \
DIRECTORY=DATA_PUMP_DIR \
DUMPFILE=peoplesoft_initial_load_%U.dmp \
LOGFILE=peoplesoft_initial_load.log \
SCHEMAS=SYSADM,HRPRD \
EXCLUDE=STATISTICS \
PARALLEL=8

Transfer the dump files to the OCI GoldenGate server using scp or OCI Object Storage.

b. OCI (Target) - Import Data Pump


impdp GGADMIN_TGT/YourSecurePassword456@target_tns_alias \
DIRECTORY=DATA_PUMP_DIR \
DUMPFILE=peoples
📧

Enjoyed this article?

Get articles like this delivered to your inbox daily. Join 10,000+ tech professionals.

Written By

Someshwar Thakur

PS Admin, Cloud Architect, DBA

Sources & References

• Official company announcements and press releases

• Industry reports from Gartner, IDC, and Statista

• Peer-reviewed research and technical documentation

• On-record statements from industry experts

Last verified: August 5, 2026

Fact-checked by TechNews Venture editorial team

Leave a Comment

Comments are moderated and will appear after review.