Real-Time Oracle to Snowflake Replication with GoldenGate 26ai on GCP

Oracle GoldenGate 26ai | Snowflake | Google Cloud Platform
Complete Step-by-Step Implementation Guide — April 2026
1. Architecture Overview
This guide walks through the complete implementation of real-time Oracle Database replication to Snowflake using Oracle GoldenGate (OGG) 26ai on Google Cloud Platform (GCP).
The solution captures change data from an Oracle 19c CDB on a GCP Compute Engine VM and delivers it to a Snowflake data warehouse using the OGG for Distributed Applications and Analytics (DAA) binary.
1.1 Pipeline Flow
The replication pipeline flows through four main stages:
Oracle 19c CDB → EXTSRC (Integrated Extract) → DISTPATH (Distribution Service)
↓
Receiver Service on Hub VM
↓
REPSF (Replicat) → Snowflake
| Stage | Component | Role |
|---|---|---|
| 1 | EXTSRC (Integrated Extract) | Reads Oracle redo logs on the source VM |
| 2 | DISTPATH (Distribution Service) | Ships trail files over the internal GCP network |
| 3 | Receiver Service | Accepts incoming trail files on the hub VM |
| 4 | REPSF (Replicat) | Applies changes to Snowflake via the Snowflake Event Handler |
1.2 Infrastructure Summary
| Component | VM / Service | Ports |
|---|---|---|
| Oracle 19c CDB (source) | oraksddblab1 (GCP) | 1521 |
| OGG for Oracle (Extract) | oraksddblab1 (GCP) | 9100–9104 |
| OGG DAA (Replicat) | oraksdprod (GCP) | 9200–9204 |
| Snowflake (target) | AWS US East (N. Virginia) | 443 |
| GCP Internal Network | 10.142.0.0/24 | 9100–9204 |
1.3 Software Versions
| Component | Version |
|---|---|
| Oracle GoldenGate for Oracle | 23.26.1.0.0 (OGG 26ai) |
| Oracle GoldenGate DAA | 23.26.1.0.0 (OGG 26ai) |
| Oracle Database | 19c Enterprise Edition (19.3.0.0.0) |
| Snowflake JDBC Driver | 3.26.1 |
| Java | OpenJDK 17 (bundled with OGG) |
| Operating System | Oracle Linux 8 (x86-64) |
2. Required Downloads
Download the following binaries from the Oracle Software Delivery Cloud (edelivery.oracle.com) or the Oracle GoldenGate Downloads page. A valid Oracle account is required for production use.
2.1 Binaries
| File / Part Number | Purpose — Install On |
|---|---|
V1054774-01.zip (OGG 26ai for Oracle) |
Source VM — Extract side |
V1054834-01.zip (OGG DAA 26ai) |
Hub VM — Replicat / Snowflake side |
snowflake-jdbc-3.26.1.jar (Maven) |
Hub VM — Snowflake JDBC driver |
Important: The OGG DAA binary is separate from the Oracle-source binary. Both must be downloaded and installed on their respective VMs.
2.2 Using the Bundled Dependency Downloader
OGG DAA includes a Maven-based dependency downloader for Snowflake JDBC. After installing the DAA binary, run:
cd /u01/app/ogg/ogg_home/opt/DependencyDownloader
./snowflake.sh
# JAR lands at: dependencies/snowflake-jdbc-3.26.1/snowflake-jdbc-3.26.1.jar
3. Operating System Preparation
Perform these steps on both VMs as root before running any OGG installer.
3.1 Create OS User and Directory Structure
# Install required packages
dnf install -y libaio bc binutils gcc make libgcc glibc glibc-devel sysstat
# Create OS user and groups
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m ogg
# Create directory structure
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/ogg/ogg_home # OGG_HOME (binaries)
mkdir -p /u01/app/ogg/ogg_sm # Service Manager
mkdir -p /u01/app/ogg/ogg_deploy # Deployment
mkdir -p /u01/software # ZIP staging
chown -R ogg:oinstall /u01/app/ogg
chown -R ogg:oinstall /u01/app/oraInventory
chown -R ogg:oinstall /u01/software
3.2 Add Swap Space
The OGG installer requires at least 150 MB of swap. GCP VMs have none by default.
dd if=/dev/zero of=/swapfile bs=1M count=512
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
3.3 Environment Variables (ogg user)
Add to /home/ogg/.bash_profile on the source VM:
export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1
export OGG_HOME=/u01/app/ogg/ogg_home
export TNS_ADMIN=/u01/app/ogg/ogg_home/network/admin
export ORACLE_SID=SRCDB
export PATH=\(ORACLE_HOME/bin:\)OGG_HOME/bin:$PATH
export LD_LIBRARY_PATH=\(ORACLE_HOME/lib:\)OGG_HOME/lib:$LD_LIBRARY_PATH
4. Installing OGG Binaries
Install OGG binaries on each VM using silent mode. The response file schema version must match the OGG 26ai release.
4.1 oggcore.rsp — Source VM (Oracle binary)
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v26_1_0
INSTALL_OPTION=ORA23ai
SOFTWARE_LOCATION=/u01/app/ogg/ogg_home
INVENTORY_LOCATION=/u01/app/oraInventory
UNIX_GROUP_NAME=oinstall
4.2 oggcore.rsp — Hub VM (DAA binary)
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v26_1_0
INSTALL_OPTION=Generic
SOFTWARE_LOCATION=/u01/app/ogg/ogg_home
INVENTORY_LOCATION=/u01/app/oraInventory
UNIX_GROUP_NAME=oinstall
Important: For the DAA binary,
INSTALL_OPTIONmust beGeneric— notBigData. Check the bundledoggcore.rspfor the exact value.
4.3 Run the Installer
# Unzip binary
unzip /u01/software/V1054774-01.zip -d /u01/software/ogg_stage
# Run silent installer
cd /u01/software/ogg_stage/fbo_ggs_Linux_x64_Oracle_services_shiphome/Disk1
./runInstaller -silent -showProgress -responseFile /home/ogg/oggcore.rsp
# Run as root (first Oracle product only)
/u01/app/oraInventory/orainstRoot.sh
5. Creating Deployments with oggca.sh
After binary installation, create the Service Manager and deployment using oggca.sh in silent mode.
5.1 Key Lessons Learned
| Rule | Detail |
|---|---|
| Strong passwords | Must have uppercase, lowercase, digit, and special char from: - ! @ % & * . # _ |
| Different usernames | Use separate users for ADMINISTRATOR_USER (SM) and DEPLOYMENT_ADMINISTRATOR_USER |
| Bind to all interfaces | Set HOST_SERVICEMANAGER=0.0.0.0 for browser and inter-VM access |
| Directory pre-creation | Only pre-create ogg_sm/ and ogg_deploy/var/data/bdb/ — let oggca create all subdirs |
| Environment variables | Set TNS_ADMIN, ORACLE_HOME, ORACLE_SID in the shell AND in the response file |
| CDB schema naming | OGG_SCHEMA must use C##OGGADMIN format for CDB databases |
5.2 oggca.rsp — Source VM
oracle.install.responseFileVersion=/oracle/install/rspfmt_oggca_response_schema_v23_1_0
CONFIGURATION_OPTION=ADD
DEPLOYMENT_NAME=OGG_SRC
ADMINISTRATOR_USER=oggadmin
ADMINISTRATOR_PASSWORD=Ogg_Admin26
DEPLOYMENT_ADMINISTRATOR_USER=oggdeploy
DEPLOYMENT_ADMINISTRATOR_PASSWORD=Ogg_Admin26
SERVICEMANAGER_DEPLOYMENT_HOME=/u01/app/ogg/ogg_sm
SERVICEMANAGER_ETC_HOME=/u01/app/ogg/ogg_sm/etc
SERVICEMANAGER_CONF_HOME=/u01/app/ogg/ogg_sm/etc/conf
SERVICEMANAGER_SSL_HOME=/u01/app/ogg/ogg_sm/etc/ssl
SERVICEMANAGER_VAR_HOME=/u01/app/ogg/ogg_sm/var
SERVICEMANAGER_DATA_HOME=/u01/app/ogg/ogg_sm/var/data
HOST_SERVICEMANAGER=0.0.0.0
PORT_SERVICEMANAGER=9100
SECURITY_ENABLED=false
STRONG_PWD_POLICY_ENABLED=true
CREATE_NEW_SERVICEMANAGER=true
REGISTER_SERVICEMANAGER_AS_A_SERVICE=false
INTEGRATE_SERVICEMANAGER_WITH_XAG=false
EXISTING_SERVICEMANAGER_IS_XAG_ENABLED=false
OGG_SOFTWARE_HOME=/u01/app/ogg/ogg_home
OGG_DEPLOYMENT_HOME=/u01/app/ogg/ogg_deploy
OGG_ETC_HOME=/u01/app/ogg/ogg_deploy/etc
OGG_CONF_HOME=/u01/app/ogg/ogg_deploy/etc/conf
OGG_SSL_HOME=/u01/app/ogg/ogg_deploy/etc/ssl
OGG_VAR_HOME=/u01/app/ogg/ogg_deploy/var
OGG_DATA_HOME=/u01/app/ogg/ogg_deploy/var/data
ENV_TNS_ADMIN=/u01/app/ogg/ogg_home/network/admin
ENV_ORACLE_SID=SRCDB
OGG_SCHEMA=C##OGGADMIN
SHARDING_ENABLED=false
ADMINISTRATION_SERVER_ENABLED=true
PORT_ADMINSRVR=9101
DISTRIBUTION_SERVER_ENABLED=true
PORT_DISTSRVR=9102
NON_SECURE_DISTSRVR_CONNECTS_TO_SECURE_RCVRSRVR=false
RECEIVER_SERVER_ENABLED=true
PORT_RCVRSRVR=9103
METRICS_SERVER_ENABLED=true
METRICS_SERVER_IS_CRITICAL=false
PORT_PMSRVR=9104
UDP_PORT_PMSRVR=9105
PMSRVR_DATASTORE_TYPE=BDB
PMSRVR_DATASTORE_HOME=/u01/app/ogg/ogg_deploy/var/data/bdb
REMOVE_DEPLOYMENT_FROM_DISK=false
5.3 Run oggca and Register Daemon
# Clean and recreate directories
rm -rf /u01/app/ogg/ogg_sm /u01/app/ogg/ogg_deploy
mkdir -p /u01/app/ogg/ogg_sm
mkdir -p /u01/app/ogg/ogg_deploy/var/data/bdb
# Set environment variables
export TNS_ADMIN=/u01/app/ogg/ogg_home/network/admin
export ORACLE_SID=SRCDB
export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1
export OGG_HOME=/u01/app/ogg/ogg_home
export PATH=\(ORACLE_HOME/bin:\)OGG_HOME/bin:$PATH
export LD_LIBRARY_PATH=\(ORACLE_HOME/lib:\)OGG_HOME/lib:$LD_LIBRARY_PATH
# Run oggca
/u01/app/ogg/ogg_home/bin/oggca.sh -silent -responseFile /home/ogg/oggca.rsp
# Register as systemd daemon (run as root)
export OGG_USER=ogg
export OGG_HOME=/u01/app/ogg/ogg_home
export OGG_CONF_HOME=/u01/app/ogg/ogg_sm/etc/conf
export OGG_VAR_HOME=/u01/app/ogg/ogg_sm/var
/u01/app/ogg/ogg_home/lib/utl/install/OracleGoldenGateInstall.sh \
--install --ogg-home /u01/app/ogg/ogg_home \
--sm-home /u01/app/ogg/ogg_sm --ogg-user ogg
6. Oracle Database Preparation (CDB)
These steps configure Oracle 19c to work with OGG integrated capture. All commands run as SYSDBA in the CDB root unless noted.
6.1 Enable GoldenGate and Supplemental Logging
-- Enable GoldenGate replication
ALTER SYSTEM SET enable_goldengate_replication=TRUE SCOPE=BOTH;
-- Enable supplemental logging at CDB level
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER DATABASE FORCE LOGGING;
-- Enable at PDB level
ALTER SESSION SET CONTAINER=SRCDBPDB;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
6.2 Create OGG Common User
Important: For CDB databases, the OGG user must be a common user (
C##prefix) created inCDB$ROOT.
CREATE USER C##OGGADMIN IDENTIFIED BY "OggAdmin_2026"
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
CONTAINER=ALL;
GRANT CREATE SESSION TO C##OGGADMIN CONTAINER=ALL;
GRANT ALTER SESSION TO C##OGGADMIN CONTAINER=ALL;
GRANT RESOURCE TO C##OGGADMIN CONTAINER=ALL;
GRANT DBA TO C##OGGADMIN CONTAINER=ALL;
GRANT SELECT ANY DICTIONARY TO C##OGGADMIN CONTAINER=ALL;
GRANT FLASHBACK ANY TABLE TO C##OGGADMIN CONTAINER=ALL;
GRANT SELECT ANY TABLE TO C##OGGADMIN CONTAINER=ALL;
GRANT CREATE ANY TABLE TO C##OGGADMIN CONTAINER=ALL;
GRANT INSERT ANY TABLE TO C##OGGADMIN CONTAINER=ALL;
GRANT UPDATE ANY TABLE TO C##OGGADMIN CONTAINER=ALL;
GRANT DELETE ANY TABLE TO C##OGGADMIN CONTAINER=ALL;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('C##OGGADMIN', CONTAINER=>'ALL');
6.3 TNS Configuration
# Copy Oracle tnsnames.ora to OGG's network/admin directory
cp /u01/app/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora \
/u01/app/ogg/ogg_home/network/admin/tnsnames.ora
# Test resolution
tnsping SRCDB
7. GCP Firewall Rules
Two firewall rules are needed: one for inter-VM traffic, one for browser access to the OGG Web UI.
# Allow inter-VM traffic on all OGG ports
gcloud compute firewall-rules create allow-ogg-internal \
--project=<your-project> \
--direction=INGRESS --network=default --action=ALLOW \
--rules=tcp:9100-9204 --source-ranges=10.142.0.0/24
# Allow browser access (replace YOUR_IP)
gcloud compute firewall-rules create allow-ogg-browser \
--project=<your-project> \
--direction=INGRESS --network=default --action=ALLOW \
--rules=tcp:9100,9101,9200,9201 --source-ranges=YOUR_IP/32
Note: OGG services bind to
127.0.0.1by default. SetHOST_SERVICEMANAGER=0.0.0.0inoggca.rspbefore deployment creation to bind to all interfaces.
8. Snowflake Preparation
8.1 RSA Key Pair Generation
Generate on the hub VM as the ogg user:
# Generate private key
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM \
-out /u01/app/ogg/ogg_deploy/etc/conf/ogg/snowflake_rsa_key.p8 -nocrypt
# Extract public key (copy this output)
openssl rsa -in /u01/app/ogg/ogg_deploy/etc/conf/ogg/snowflake_rsa_key.p8 \
-pubout 2>/dev/null | grep -v 'PUBLIC KEY' | tr -d '\n'
8.2 Snowflake Setup
USE ROLE ACCOUNTADMIN;
-- Create OGG user
CREATE USER IF NOT EXISTS OGG_USER
DEFAULT_ROLE = SYSADMIN
DEFAULT_WAREHOUSE = COMPUTE_WH
MUST_CHANGE_PASSWORD = FALSE;
-- Register public key (paste key string from above)
ALTER USER OGG_USER SET RSA_PUBLIC_KEY='<paste_public_key_here>';
-- Create target database and schema
CREATE DATABASE IF NOT EXISTS OGG_REPLICATION;
CREATE SCHEMA IF NOT EXISTS OGG_REPLICATION.COMICS;
-- Grant privileges
GRANT ROLE SYSADMIN TO USER OGG_USER;
GRANT ALL ON DATABASE OGG_REPLICATION TO ROLE SYSADMIN;
GRANT ALL ON SCHEMA OGG_REPLICATION.COMICS TO ROLE SYSADMIN;
GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE SYSADMIN;
ALTER WAREHOUSE COMPUTE_WH RESUME IF SUSPENDED;
8.3 Finding Your Snowflake Account Identifier
-- Run in Snowflake worksheet
SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME();
-- Example result: DTDKDSZ-UDC61024
-- Use as: jdbc:snowflake://DTDKDSZ-UDC61024.snowflakecomputing.com/...
9. Configuring the Replication Pipeline
9.1 Add Database Credential (Source VM)
curl -u oggdeploy:Ogg_Admin26 \
-X POST 'http://localhost:9101/services/v2/credentials/OracleGoldenGate/SRCDB' \
-H 'Content-Type: application/json' \
-d '{"userid": "C##OGGADMIN@SRCDB", "password": "OggAdmin_2026"}'
9.2 Create and Register Extract (adminclient)
/u01/app/ogg/ogg_home/bin/adminclient
connect http://localhost:9101 as oggdeploy password Ogg_Admin26
dblogin useridalias SRCDB domain OracleGoldenGate
-- Register Extract with Oracle LogMiner (required for CDB)
register extract EXTSRC database container (SRCDBPDB)
-- Create Extract and trail
add extract EXTSRC, integrated tranlog, begin now
add exttrail lt, extract EXTSRC, megabytes 500
9.3 EXTSRC.prm Parameter File
Save to: /u01/app/ogg/ogg_deploy/etc/conf/ogg/EXTSRC.prm
EXTRACT EXTSRC
USERIDALIAS SRCDB DOMAIN OracleGoldenGate
EXTTRAIL lt
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
TABLE SRCDBPDB.COMICS.*;
9.4 Network Credentials (Both VMs)
Add Network domain credentials on both VMs for Distribution Path authentication:
# Source VM (port 9101)
curl -u oggdeploy:Ogg_Admin26 \
-X POST 'http://localhost:9101/services/v2/credentials/Network/oggdeploy' \
-H 'Content-Type: application/json' \
-d '{"userid": "oggdeploy", "password": "Ogg_Admin26"}'
# Hub VM (port 9201)
curl -u oggdeploy:Ogg_Admin26 \
-X POST 'http://localhost:9201/services/v2/credentials/Network/oggdeploy' \
-H 'Content-Type: application/json' \
-d '{"userid": "oggdeploy", "password": "Ogg_Admin26"}'
9.5 Replicat Parameter File (REPSF.prm)
REPLICAT REPSF
TARGETDB LIBFILE libggjava.so SET property=/u01/app/ogg/ogg_deploy/etc/conf/ogg/REPSF.properties
REPORTCOUNT EVERY 1 MINUTES, RATE
GROUPTRANSOPS 1000
DISCARDFILE /u01/app/ogg/ogg_deploy/var/lib/dirrpt/REPSF.dsc, APPEND, MEGABYTES 500
MAP SRCDBPDB.COMICS.*, TARGET COMICS.*;
9.6 Replicat Properties File (REPSF.properties)
Important: OGG 26ai DAA uses
gg.target=snowflakeandgg.eventhandler.snowflake.*— NOT the oldergg.handlerlistformat.
gg.target=snowflake
gg.eventhandler.snowflake.connectionURL=jdbc:snowflake://<ACCOUNT>.snowflakecomputing.com/?user=OGG_USER&db=OGG_REPLICATION&schema=COMICS&warehouse=COMPUTE_WH&CLIENT_SESSION_KEEP_ALIVE=true&authenticator=snowflake_jwt&private_key_file=/u01/app/ogg/ogg_deploy/etc/conf/ogg/snowflake_rsa_key.p8
gg.eventhandler.snowflake.UserName=OGG_USER
gg.classpath=/u01/app/ogg/ogg_home/opt/DependencyDownloader/dependencies/snowflake-jdbc-3.26.1/snowflake-jdbc-3.26.1.jar
goldengate.userexit.writers=jvm
jvm.bootoptions=-Xmx512m -Xms64m
Replace <ACCOUNT> with your Snowflake organization-based identifier (e.g. DTDKDSZ-UDC61024).
9.7 Create Distribution Path (Web UI)
In the source VM Web UI (http://<source-external-ip>:9101), log in as oggdeploy and navigate to Distribution Service Paths > Add Path:
| Field | Value |
|---|---|
| Path Name | DISTPATH |
| Source Extract | EXTSRC |
| Trail Name | lt |
| Target Protocol | ws |
| Target Host | 10.142.0.3 (hub VM internal IP) |
| Port Number | 9203 |
| Target Trail Name | rt |
| Domain | Network |
| Alias | oggdeploy |
10. Verification and Testing
10.1 Check All Processes Running
# Source VM — adminclient
connect http://localhost:9101 as oggdeploy password Ogg_Admin26
info all
# Expected:
# EXTRACT RUNNING EXTSRC INTEGRATED 00:00:00 <seconds>
# Hub VM
connect http://localhost:9201 as oggdeploy password Ogg_Admin26
info all
# Expected:
# REPLICAT RUNNING REPSF ...
10.2 Test Real-Time Replication
Insert test data in Oracle and verify it appears in Snowflake within seconds:
-- Oracle: Insert test data
ALTER SESSION SET CONTAINER=SRCDBPDB;
INSERT INTO COMICS.PUBLISHERS (NAME) VALUES ('Marvel Comics');
INSERT INTO COMICS.SERIES (BP_SERIES_ID, DISPLAY_NAME, LAST_NAME, SORT_NAME, IS_COMPLETE)
VALUES (9001, 'Amazing Spider-Man', 'Amazing Spider-Man', 'Amazing Spider-Man', 'N');
INSERT INTO COMICS.OWNERS (DISPLAY_NAME) VALUES ('Test Owner');
INSERT INTO COMICS.COMICS (
HASH, SERIES_ID, ISSUE_NR, ISSUE_TITLE, PUBLISHER_ID,
COVER_YEAR, COVER_MONTH, PAGE_COUNT, COVER_PRICE, CURRENT_PRICE,
FORMAT, COUNTRY, LANGUAGE, QUANTITY, READ_IT, IS_SLABBED,
STATUS_ID, OWNER_ID, ADDED_TIMESTAMP, MODIFIED_TIMESTAMP,
CREATED_AT, UPDATED_AT
) VALUES (
'ABC123HASH001',
(SELECT SERIES_ID FROM COMICS.SERIES WHERE DISPLAY_NAME = 'Amazing Spider-Man'),
'300', 'The Amazing Spider-Man #300',
(SELECT PUBLISHER_ID FROM COMICS.PUBLISHERS WHERE NAME = 'Marvel Comics'),
1988, 5, 25, 0.75, 450.00, 'Standard', 'USA', 'English',
1, 'Y', 'N', 9001,
(SELECT OWNER_ID FROM COMICS.OWNERS WHERE DISPLAY_NAME = 'Test Owner'),
1711843200, 1711843200, SYSTIMESTAMP, SYSTIMESTAMP
);
COMMIT;
-- Snowflake: Verify replication (~30 seconds later)
USE DATABASE OGG_REPLICATION;
USE SCHEMA COMICS;
SHOW TABLES;
SELECT COMIC_ID, ISSUE_TITLE, COVER_YEAR, CURRENT_PRICE FROM COMICS;
10.3 Web UI URLs
| Service | URL |
|---|---|
| Source Service Manager | http://<source-external-ip>:9100 |
| Source Admin Service | http://<source-external-ip>:9101 |
| Hub Service Manager | http://<hub-external-ip>:9200 |
| Hub Admin Service | http://<hub-external-ip>:9201 |
Login with: oggdeploy / Ogg_Admin26
11. Troubleshooting Reference
11.1 Common Errors and Fixes
| Error | Cause | Fix |
|---|---|---|
INS-75022 Install option not specified |
Wrong INSTALL_OPTION value in oggcore.rsp |
Use ORA23ai for Oracle binary, Generic for DAA binary |
INS-85037 Deployment creation failed / OGG-12064 401 Unauthorized |
Password mismatch or weak password policy | Use strong password: uppercase + lowercase + digit + special char. Use different SM and deployment usernames. |
ORA-12154 Cannot connect to database |
TNS_ADMIN not set or tnsnames.ora missing |
Copy Oracle tnsnames.ora to /u01/app/ogg/ogg_home/network/admin/ and export TNS_ADMIN before oggca.sh |
OGG-02024 Failed to gather logmining info |
OGG apply process dropped after recreation | Run: register extract EXTSRC database container (SRCDBPDB) in adminclient |
ClassNotFoundException: snowflake |
Wrong properties file format (old gg.handlerlist= format) |
Use gg.target=snowflake and gg.eventhandler.snowflake.* format |
HTTP 404 on Snowflake connect |
Wrong account identifier in JDBC URL | Run `SELECT CURRENT_ORGANIZATION_NAME() |
Missing user name for opening session |
Username not in JDBC URL | Add user=OGG_USER as URL parameter in connectionURL |
NoSuchFileException: rsa_key.p8 |
Key file path wrong or deleted during reinstall | Regenerate RSA key pair and re-register public key in Snowflake |
OGG-30402 Alias not found in domain Network |
Network credential not added to hub VM | POST to /services/v2/credentials/Network/oggdeploy on hub VM port 9201 |
Connection refused on port 9203 |
Services bound to 127.0.0.1 only |
Set HOST_SERVICEMANAGER=0.0.0.0 in oggca.rsp, or edit deploymentConfiguration.dat |
ORA-32795 Cannot insert into identity column |
Specifying value for GENERATED ALWAYS column |
Omit identity columns from INSERT — let Oracle auto-generate them |
11.2 Useful Diagnostic Commands
# Check OGG process status
systemctl status OracleGoldenGate
# Check ports listening
ss -tlnp | grep -E '910|920'
# Check Replicat report file
tail -50 /u01/app/ogg/ogg_deploy/var/lib/report/REPSF.rpt
# Check error log
tail -30 /u01/app/ogg/ogg_deploy/var/log/ggserr.log
# Verify Snowflake connection URL
grep connectionURL /u01/app/ogg/ogg_deploy/etc/conf/ogg/REPSF.properties
# REST API — check deployments
curl -u oggdeploy:Ogg_Admin26 http://localhost:9101/services/v2/deployments
curl -u oggdeploy:Ogg_Admin26 http://localhost:9201/services/v2/deployments
12. Credentials and Ports Summary
12.1 OGG Credentials
| Account | Credentials |
|---|---|
| Service Manager (both VMs) | oggadmin / Ogg_Admin26 |
| Deployment Admin (both VMs) | oggdeploy / Ogg_Admin26 |
| Oracle OGG User (CDB) | C##OGGADMIN / OggAdmin_2026 |
| Snowflake OGG User | OGG_USER / RSA key pair auth |
12.2 Port Reference
| VM | Service | Port |
|---|---|---|
| oraksddblab1 (source) | Service Manager | 9100 |
| oraksddblab1 (source) | Admin Service | 9101 |
| oraksddblab1 (source) | Distribution Service | 9102 |
| oraksddblab1 (source) | Receiver Service | 9103 |
| oraksddblab1 (source) | Performance Metrics | 9104 |
| oraksdprod (hub) | Service Manager | 9200 |
| oraksdprod (hub) | Admin Service | 9201 |
| oraksdprod (hub) | Distribution Service | 9202 |
| oraksdprod (hub) | Receiver Service | 9203 |
| oraksdprod (hub) | Performance Metrics | 9204 |





