Oracle ZDM Logical Migration Step by Step Guide

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

Oracle Zero Downtime

Migration (ZDM)

Step-by-Step Guide – Logical Migration and


In-Flight Upgrade from On-Premises to DBCS
and ExaCS

February 2023, Version 1.2


Copyright © 2023, Oracle and/or its affiliates
Public
Table of contents

Introduction 4
Zero Downtime Migration 5
Architecture 5
Supported Configurations 5
Zero Downtime Migration Service Host 6
Zero Downtime Migration Service Host Requirements 6
ZDM Service Host Installation 6
ZDM Service Host Port Requirements 8
Port Requirements for ZDM Service Host 8
Source Database 9
Source Database Requirements 9
Target Database 10
Target Database Requirements 10
Connectivity 14
SSH Key Pair 14
Authentication Token 15
Adding ZDM Host Public Keys to the Target Database Server 15
OCI CLI Command Line Tool 15
API Signing Public Key 15
GoldenGate Hub 15
Connectivity between ZDM Service Host, Source, Target, and
GoldenGate Hub 16
Backup Location 16
Object Storage Requirements 16
Preparing the Response File 17
Response File Parameters used in this guide 17
Logical Online Migration to DBCS and ExaCS with ZDM 20
Performing a Test Database Migration in Evaluation Mode 20
Performing a Database Migration 21
Troubleshooting & Other Resources 23

List of Figures
Figure 1. Oracle Zero Downtime Migration Logo comprising of a
Database, a Clock with an arrow pointing to a Database deployed in
the Cloud 4

2 Technical Brief / Oracle Zero Downtime Migration (ZDM) - Step-by-Step Guide / Version 2.1
Copyright © 2023, Oracle and/or its affiliates
List of figures and tables
Figure 1. Oracle Zero Downtime Migration Logo comprising of a
Database, a Clock with an arrow pointing to a Database deployed in
the Cloud 4

3 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Figure 1. Oracle Zero Downtime Migration Logo comprising of a Database, a Clock with an arrow pointing to a Database deployed in the Cloud

Introduction
Oracle customers are moving Oracle workloads into the Oracle Cloud or onto Engineered Systems at a growingly
rapid pace. However, migrating workloads has been a source of challenges for many years. In particular, migrating
database workloads from one system to another or into the Cloud is easier said than done.

Based on years of experience migrating Oracle workloads, Oracle has developed Zero Downtime Migration (ZDM).
ZDM is Oracle’s premier solution for a simplified and automated migration experience, providing zero to
negligible downtime for the production system depending on the migration scenario. ZDM allows you to directly
and seamlessly migrate your on-premises Oracle Databases to and between any Oracle-owned infrastructure,
including Exadata Database Machine On-Premises, Exadata Cloud at Customer (ExaC@C), and Oracle Cloud
Infrastructure. Oracle ZDM supports a wide range of Oracle Database versions and, as the name implies, ensures
minimal to no production database impact during the migration.

ZDM follows Oracle Maximum Availability Architecture (MAA) principles1 and incorporates products such as
GoldenGate and Data Guard to ensure High Availability and an online migration workflow that leverages
technologies such as the Recovery Manager, Data Pump, and Database Links.

This technical brief is a step-by-step guide for migrating your on-premises Oracle Databases to the Oracle Cloud
with Zero Downtime Migration’s new Logical workflow. The scenario used for this migration comprises a Source
Database running on Compute via Marketplace to emulate an On-Premises environment and a Target Database
running on Oracle Cloud Infrastructure DBCS Virtual Machines; The base process is the same for a Target
Database running on Oracle Cloud Infrastructure Exadata Cloud Service.

Oracle ZDM will run on a separate node and connect to both Source and Target to perform the migration. This
guide will cover all requirements related to installing the Oracle ZDM service host, the Source Database to be
migrated, the Target Database recipient of the migration process, the backup and networking used. The migration
process will be dissected and done in a step-by-step fashion. This guide will answer the most frequently asked
questions regarding the product and the overall migration process.

The Source Database will be an 11.2.0.4 Oracle Database, and the Target Database will be a 19c Oracle Database.
This guide will cover the migration process while providing an in-flight upgrade of the Source Database.

For more information on Oracle Zero Downtime Migration, please visit ZDM’s product website.2

1
http://oracle.com/goto/maa

2
Http://www.oracle.com/goto/zdm

4 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Zero Downtime Migration
Architecture
Oracle Zero Downtime Migration (ZDM) is the Oracle Maximum Availability Architecture (MAA)-recommended
solution to migrate Oracle Databases to the Oracle Cloud. ZDM's inherent design keeps in mind the migration
process as straightforward as possible to ensure the most negligible impact on production workloads. The Source
Database to be migrated can be on-premises, deployed on Oracle Public Cloud Gen 1 or Oracle Cloud
Infrastructure. The Target Database deployment can be in a Database Cloud Service on Oracle Cloud
Infrastructure (OCI) Virtual Machine, Exadata Cloud Service, Exadata Cloud at Customer, or Autonomous
Database. ZDM automates the entire migration process, reducing the chance of human errors. ZDM leverages
Oracle Database-integrated high availability (HA) technologies such as Oracle Data Guard and GoldenGate and
follows all MAA best practices that ensure no significant downtime of production environments. Oracle ZDM
supports both Physical and Logical Migration workflows. This technical brief covers a step-by-step guide for the
Logical Migration Workflow leveraging the Object Storage as a backup location.

The Logical Migration Workflow in ZDM has two flavors, Offline and Online. Offline migration leverages Data
Pump for data transfer and target instantiation. Online Migration also leverages Data Pump for the same
purposes described above but also leverages Oracle GoldenGate for synchronization purposes and to preserve
the online portion of the migration process. For offline and online workflows, ZDM takes care of each one of the
steps and automates everything.

A standard logical offline migration will take the following steps:

1. Download and Configure ZDM.


2. ZDM Performs Validations.
3. ZDM Connects to Backup Location
4. ZDM Exports Via Data Pump from Source to Backup Location.
5. ZDM Imports Data Dump Files from Backup Location to Target.
6. ZDM Instantiates Target Database.
7. ZDM Switches Over Finalizes the Migration Process.
A standard logical online migration will take the following steps:

1. Download & Configure ZDM.


2. ZDM Starts Database Migration.
3. ZDM Connects to the Source, Target, and Backup Location.
4. ZDM Configures GoldenGate and Captures Source Transactions.
5. ZDM Exports via Data Pump from Source to Backup Location.
6. ZDM Imports Data Dump Files from Backup Location to Target.
7. ZDM Configures GoldenGate and Starts Applying changes.
8. ZDM Switches Over and Finalizes the Migration Process.

Supported Configurations
Oracle ZDM supports Oracle Database versions 11.2.0.4, 12.1.0.2, 12.2.0.1, 18c, 19c & 21c. ZDM’s physical
migration workflow requires the Source and Target Databases to be in the same database release. Starting with
ZDM 21c and introducing the Logical Migration workflow, ZDM now supports database cross-version migration,
thus providing an in-flight upgrade while migrating to the Oracle Cloud.

5 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Oracle ZDM supports Source Oracle Databases hosted on Linux, Solaris, and AIX operating systems. Oracle ZDM
supports single-instance databases, Oracle RAC One Node databases, or Oracle RAC databases as sources. Oracle
ZDM supports Oracle Database Enterprise & Standard Edition as Source and Target Databases.

Zero Downtime Migration Service Host


Zero Downtime Migration Service Host Requirements
Oracle Zero Downtime Migration installation must take place on a separate host, which must fulfill the following
requirements:
• Linux host running on Oracle 7 (must be this OS version).
• 100 GB of free storage space. This space is required for all the logs that ZDM will generate.
• A zdm group and a zdmuser as part of this group.
• The following packages must be installed:
o glibc-devel
o expect
o unzip
o libaio
o oraclelinux-developer-release-el7
• All hostnames and IP addresses to be used must be present as entries in the /etc/hosts file.

For more information on the ZDM Service Host requirements, please refer to Oracle ZDM’s product
documentation, specifically the “Setting Up Zero Downtime Migration Software” section.

o https://docs.oracle.com/en/database/oracle/zero-downtime-migration/index.html

The ZDM software can be:


Ÿ Installed manually on-premises.
Ÿ Installed manually on OCI.
This Step-by-Step Guide will cover the manual installation of the ZDM Service Host, including a thorough
description of all necessary instructions about the deployment and configuration.

ZDM Service Host Installation


Log in to the ZDM Service Host as root user and follow the steps described here.
First, create a new group, user, and the needed directories as described in the code excerpt below:
[root@zdmhost]# groupadd zdm
[root@zdmhost]# useradd zdmuser -g zdm

[root@zdmhost]# mkdir -p /home/zdmuser/zdminstall

[root@zdmhost]# mkdir /home/zdmuser/zdmhome

[root@zdmhost]# mkdir /home/zdmuser/zdmbase


[root@zdmhost]# chown -R zdmuser:zdm /home/zdmuser/

6 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Then, proceed to install the required software packages; as root user, follow the code excerpt below:

[root@zdmhost]# yum -y install \

glibc-devel \

expect \

unzip \

libaio \

oraclelinux-developer-release-el7
[root@zdmhost]# yum list installed glibc-devel expect unzip libaio oraclelinux-
developer-release-el7
Download ZDM binaries to /home/zdmuser/zdminstall from www.oracle.com/database/technologies/rac/zdm-
downloads.html. Change the owner of the zip file to zdmuser. As root user, follow the code excerpt below:

[root@zdmhost]# cd /home/zdmuser/zdminstall
[root@zdmhost zdminstall]# chown zdmuser:zdm /home/zdmuser/zdminstall/zdm.zip

Install the ZDM software. As zdmuser, follow the code excerpt quoted below:
[root@zdmhost zdminstall]# su - zdmuser

[zdmuser@zdmhost ~]$ echo "ORACLE_HOME=/home/zdmuser/zdmhome; export ORACLE_HOME" >>


~/.bashrc

[zdmuser@zdmhost ~]$ echo "ORACLE_BASE=/home/zdmuser/zdmbase; export ORACLE_BASE" >>


~/.bashrc

[zdmuser@zdmhost ~]$ echo "ZDM_BASE=\$ORACLE_BASE; export ZDM_BASE" >> ~/.bashrc

[zdmuser@zdmhost ~]$ echo "ZDM_HOME=/home/zdmuser/zdmhome; export ZDM_HOME" >>


~/.bashrc

[zdmuser@zdmhost ~]$ echo "ZDM_INSTALL_LOC=/home/zdmuser/zdminstall; export


ZDM_INSTALL_LOC" >> ~/.bashrc

[zdmuser@zdmhost ~]$ cat ~/.bashrc

ORACLE_HOME=/home/zdmuser/zdmhome; export ORACLE_HOME

ORACLE_BASE=/home/zdmuser/zdmbase; export ORACLE_BASE

ZDM_BASE=$ORACLE_BASE; export ZDM_BASE

ZDM_HOME=/home/zdmuser/zdmhome; export ZDM_HOME

ZDM_INSTALL_LOC=/home/zdmuser/zdminstall; export ZDM_INSTALL_LOC

[zdmuser@zdmhost ~]$ source ~/.bashrc

[zdmuser@zdmhost ~]$ cd /home/zdmuser/zdminstall/

[zdmuser@zdmhost zdminstall]$ unzip zdm.zip

[zdmuser@zdmhost zdminstall]$ cd zdm

-- Proceed to runZDM’s installation script zdmuser:

[zdmuser@zdmhost zdm]$ ./zdminstall.sh setup \

oraclehome=$ZDM_HOME \

oraclebase=$ZDM_BASE \

7 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
ziploc=./zdm_home.zip -zdm
Start ZDM and check the status. As zdmuser, follow the code excerpt below:

[zdmuser@zdmhost zdm]$ $ZDM_HOME/bin/zdmservice start

Return code is 0

Server started successfully.

[zdmuser@zdmhost zdm]$ $ZDM_HOME/bin/zdmservice status

---------------------------------------

Service Status

---------------------------------------

Running: true

Tranferport:

Conn String: jdbc:mysql://localhost:8897/

RMI port: 8895

HTTP port: 8896


Wallet path: /home/zdmuser/zdmbase/crsdata/zdmhost/security

ZDM Service Host Port Requirements


Please find a simplified table with the ports required for communication between the Zero Downtime Migration
service host and the Source and Target Database servers.

Port Requirements for ZDM Service Host

• Purpose: SSH
o Port: 1, 22
o Protocol: TCP

• Purpose: SQL*NET
o Port: 1521, 2484 or a DB Scan listener
o Protocol: TCP

• Purpose: OCI & GoldenGate REST Endpoint


o Port: 443
o Protocol: HTTP

You can find more information on the Oracle Zero Downtime Migration documentation section “Configuring
Required Connections.”
o https://docs.oracle.com/en/database/oracle/zero-downtime-migration/index.html

8 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Source Database
Source Database Requirements
ZDM supports Oracle Database 11g release 2 (11.2.0.4) or later versions. Follow these recommendations before
starting the migration.
• Apply all recommended/required OGG and RDBMS patches; an updated list of this information can be
found at:

o Oracle ZDM Product Documentation section: “Source Database Prerequisites for Logical
Migration”

§ https://docs.oracle.com/en/database/oracle/zero-downtime-migration/index.html

o Oracle GoldenGate – Oracle RDBMS Server Recommended Patches (Doc ID 1557031.1)

§ https://support.oracle.com/rs?type=doc&id=1557031.1

o Latest GoldenGate/Database (OGG / RDBMS) Patch recommendations (Doc ID 2193391.1)

§ https://support.oracle.com/rs?type=doc&id=2193391.1

• Enable and set the following:

o ARCHIVELOG mode
o FORCE LOGGING
o Enable database minimal supplemental logging
o Set STREAMS_POOL_SIZE to at least 2GB

o Follow all the above and other requirements as per:

§ “Source Database Prerequisites for Logical Migration”:


• https://docs.oracle.com/en/database/oracle/zero-downtime-
migration/index.html

§ “Integrated Extract / Replicat and STREAMS_POOL_SIZZE”


• https://support.oracle.com/epmos/faces/DocumentDisplay?id=2078459.1

• Ensure Row Uniqueness by following:

o “Ensuring Row Uniqueness in Source and Target Tables”:


§ https://docs.oracle.com/en/middleware/goldengate/core/21.3/index.html

• If the source database is configured with MAX_STRING_SIZE=STANDARD, set the same for the target
database.

• Follow all Oracle GoldenGate Performance Guidelines as per:

o “Oracle Zero Downtime Migration – Logical Migration Performance Guidelines”


§ https://www.oracle.com/a/tech/docs/zdm-gg-performance.pdf

• Create all relevant users for GGADMIN in the source database by following:

o “Additional Logical Migration Prerequisites”


§ https://docs.oracle.com/en/database/oracle/zero-downtime-migration/index.html

9 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Source Database Port Requirements
• Purpose: SSH
o Port: 22
o Protocol: TCP

• Purpose: SQL*NET
o Port: 1521, 2484 or a DB Scan listener
o Protocol: TCP

• Purpose: Database Backup Store. OCI OSS


o Port: 443
o Protocol: HTTP

You can find more information on the Oracle Zero Downtime Migration documentation section “Configuring
Required Connections.”

o https://docs.oracle.com/en/database/oracle/zero-downtime-migration/index.html

Target Database
Target Database Requirements
Zero Downtime Migration will migrate the Source Database to an Oracle Cloud Infrastructure database. This step-
by-step guide covers the basics of migrating to a database on DBCS or Exadata Cloud Service.

Create a placeholder database on the Target Cloud service before starting the migration process. This placeholder
Target Database must comply with the following requirements:
Ÿ Sizing: please ensure that the shape chosen will suffice for the Source Database sizing and any future
increment in size.

Ÿ Version: the Target Database must be of the same version or higher than the Source Database version.
Migration to a lower version database is not supported.

Ÿ Character set: the character set on the Source and Target Database must be the same.

Ÿ Database time zone: the database time zone on the Target Database must be equal to or higher than the
Source Database time zone.

Ÿ SSL/TLS: for Target Databases configured to use SSL/TLS, store the wallet containing the TLS
authentication certificates in the correct location on the GoldenGate hub:
o /u02/deployments/deployment_name/etc

Please log in to your Oracle Cloud Account and access the Database systems tab by clicking on the Bare Metal,
VM, and Exadata Menu. Please proceed to select the appropriate values regarding: Compartment, DB System
name, Availability domain, shape, etc.

10 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Log in to the Target Database via SSH and verify that the database time zone is equal to or higher than the Source
Database.

-- TARGET Time zone check


SQL> SELECT * FROM v$timezone_file;
FILENAME VERSION CON_ID
-------------------- ---------- ----------
timezlrg_35.dat 35 0
-- SRVCTL Configuration Show current settings on Target
[oracle@target ~]$ srvctl config database -d TARGET_DB -a
Database unique name: TARGET_DB_nrt1wq
Database name: TARGET_DB
Oracle home: /u01/app/oracle/product/19.0.0.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/TARGET_DB/PARAMETERFILE/spfile.269.1071901813
Password file:
Domain: publicsubnet.vcnjpantechning.oraclevcn.com
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: RECO,DATA
Mount point paths:
Services:
Type: SINGLE
Database is enabled
Database is individually enabled on nodes:
Database is individually disabled on nodes:
OSDBA group: dba
OSOPER group: dbaoper
Database instance: TARGET_DB
Configured nodes: target
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed

-- Use the crsctl query crs release version command to display the
version of the Oracle Clusterware software

11 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
[grid@target ~]$ crsctl query crs software version -all
Oracle Clusterware version on node [target] is [19.0.0.0.0]
--Check the current service name on the target.
SQL> select value from v$parameter where name='service_names';
VALUE
--------------------------------------------------------------------------------
TARGET_DB.xyz.xyz.xyz.com
-- Ensure that the wallet STATUS is OPEN and WALLET_TYPE is
AUTOLOGIN
For Oracle Database 12c Release 2 and later, if the Source and Target Databases do
not have Transparent Data Encryption (TDE) enabled, then it is mandatory that you
configure the TDE keystore before migration begins.
SQL> select WRL_TYPE,WRL_PARAMETER,STATUS,CON_ID FROM v$encryption_wallet;

WRL_TYPE WRL_PARAMETER STATUS CON_ID


---------- ------------------------------------------------------ ------ ------
FILE /opt/oracle/dcs/commonstore/wallets/tde/TARGET_DB/ OPEN 1
FILE OPEN 2
FILE OPEN 3

SQL> show pdbs


CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
SQL> alter session set container=pdb1;
Session altered.
SQL> select owner,tablespace_name from dba_tables where owner ='TEST';
OWNER TABLESPACE_NAME
---------- ------------------------------
TEST TEST

SQL> select d.TABLESPACE_NAME, d.FILE_NAME from dba_data_files d, v$datafile v where


d.FILE_ID = v.FILE# order by d.TABLESPACE_NAME, d.FILE_NAME;

TABLESPACE FILE_NAME
---------- --------------------------------------------------------------------------
-------------
SYSAUX
+DATA/TARGET_DB/C1B89AAB24203930E0533100000A0129/DATAFILE/sysaux.271.1071902309
SYSTEM
+DATA/TARGET_DB/C1B89AAB24203930E0533100000A0129/DATAFILE/system.276.1071902299
TEST
+DATA/TARGET_DB/C1B89AAB24203930E0533100000A0129/DATAFILE/test.282.1072487049

12 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
UNDOTBS1
+DATA/TARGET_DB/C1B89AAB24203930E0533100000A0129/DATAFILE/undotbs1.272.1071902319
USERS
+DATA/TARGET_DB/C1B89AAB24203930E0533100000A0129/DATAFILE/users.275.1071902287

-- Create a GoldenGate administration user, ggadmin (in the PDB in


case of Multitenant):
SQL> alter session set container=pdb1;
SQL> create user ggadmin identified by WElcome##1234 default tablespace users
temporary tablespace temp;
SQL> grant connect, resource to ggadmin;
SQL> grant unlimited tablespace to ggadmin;
SQL> alter user ggadmin quota 100M on users;
SQL> grant select any dictionary to ggadmin;
SQL> grant create view to ggadmin;
SQL> grant execute on dbms_lock to ggadmin;
SQL> exec dbms_goldengate_auth.GRANT_ADMIN_PRIVILEGE('ggadmin');

-- You need to connect to a CDB, Enable initialization parameter


ENABLE_GOLDENGATE_REPLICATION:
SQL> show parameter ENABLE_GOLDENGATE_REPLICATION
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
enable_goldengate_replication boolean FALSE

SQL> alter system set ENABLE_GOLDENGATE_REPLICATION=TRUE scope=both;


System altered.

SQL> show parameter ENABLE_GOLDENGATE_REPLICATION


NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
enable_goldengate_replication boolean TRUE

-- DATA PUMP Required Target preparation


SQL> alter user SYSTEM identified by Welcome##1234;
User Altered.
-- Grant DATAPUMP_IMP_FULL_DATABASE role to SYSTEM
SQL> grant DATAPUMP_IMP_FULL_DATABASE to system;
Grant succeeded.

13 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Target Database Port Requirements
• Purpose: SSH
o Port: 22
o Protocol: TCP
• Purpose: SQL*NET
o Port: 1521, 2484 or a DB Scan listener
o Protocol: TCP
• Purpose: Database Backup Store. OCI OSS
o Port: 443
o Protocol: HTTP
You can find more information on the Oracle Zero Downtime Migration documentation section “Configuring
Required Connections.”

o https://docs.oracle.com/en/database/oracle/zero-downtime-migration/index.html

Connectivity
SSH Key Pair
ZDM connects via SSH to the Source Database servers; hence an SSH key pair for the zdmuser is required. As
zdmuser, run the following:

[zdmuser@zdmhost ~]$ mkdir ~/.ssh


[zdmuser@zdmhost ~]$ chmod 700 ~/.ssh
[zdmuser@zdmhost ~]$ /usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zdmuser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/zdmuser/.ssh/id_rsa.
Your public key has been saved in /home/zdmuser/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:keyfingerprintsample zdmuser@zdmhost
[zdmuser@zdmhost ~]$ cd ~/.ssh
[zdmuser@zdmhost .ssh]$ cat id_rsa.pub >> authorized_keys
[zdmuser@zdmhost .ssh]$ chmod 600 authorized_keys

You can find more information on ZDM Product’s documentation section, “Generating a Private SSH Key
Without a Passphrase.”
o https://docs.oracle.com/en/database/oracle/zero-downtime-migration/index.html
Before continuing with the migration environment setup, rename the id_rsa.pub file to <zdm_service_host_name>.ppk
on the ZDM Service Host.
[zdmuser@zdmhost .ssh]$ cd /home/zdmuser/.ssh
[zdmuser@zdmhost .ssh]$ mv id_rsa zdm.ppk

14 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Authentication Token
The OCI user requires an Authentication Token, which can be created from the user’s detail page. Click on the
“Auth Tokens” option and the “Generate Token” button. ZDM uses the Auth Token during the migration; hence,
it is of the utmost importance that it is securely copied and stored.

Adding ZDM Host Public Keys to the Target Database Server


Add the ZDM Host Public Keys to the Target Database Server Authorized Key files by executing the following on
the Target Database server:

[opc@target ~]$ cd /home/opc/.ssh

[opc@target .ssh] $ echo "ssh-rsa


xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz
xyzxyzxyzxyz zdmuser@zdmhost" >> authorized_keys

OCI CLI Command Line Tool


The Oracle Cloud Infrastructure command-line tool (OCI CLI) accesses OCI resources during the migration, among
other tasks. To install the OCI CLI on the ZDM Service Host, the zdmuser run as follows:

[zdmuser@zdmhost ~]$ sudo yum install python36-oci-cli

API Signing Public Key


ZDM uses an API Signing Public Key to call REST APIs. Upload the key to the OCI user in the cloud console, from
the ZDM Service host, as the zdmuser, by executing as follows:
[zdmuser@zdmhost ~]$ mkdir ~/.ssh
[zdmuser@zdmhost lib]$ cat /home/zdmuser/.oci/oci_api_key_public.pem
-----BEGIN PUBLIC KEY-----

xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz
xyzxyzxyzxyz
-----END PUBLIC KEY-----

Proceed to copy the output of this command and then go to the OCI user’s page. There, click on “API Keys” and
then click on “Add API Key”. Select the option labeled as “Paste Public Key”, then paste the output from the
command just copied above; once copied, click “Add”.

GoldenGate Hub
ZDM's Logical Online Migration workflow requires a GoldenGate Hub with two GoldenGate Microservices, one
Extract, and one Replicat. These two microservices' tasks keep both source and Target Databases in sync during
the migration and the graceful switchover. To set the GoldenGate Hub, please follow the instructions as per:
Ÿ Oracle GoldenGate Microservices on Oracle Cloud Marketplace
Deploy the Oracle GoldenGate Microservices using the specific image from the Oracle Cloud Marketplace located
in:
Ÿ Oracle GoldenGate – Database Migrations
Please visit the link and from the main menu, choose “Oracle GoldenGate - Database Migrations”, and continue
with the default version.

15 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Upon the creation of the GoldenGate Hub deployment, connect to the VM via SSH using its Public IP address to
get the oggadmin user password:

-bash-4.2$ cat /home/opc/ogg-credentials.json

{"username": "oggadmin", "credential": "xyzxyzxyzxyzxyz"}

Proceed to add the server’s hostname and IP information into the ZDM host /etc/hosts file.
-bash-4.2$ cat /etc/hosts

10.0.0.158 ogg21cora.x.y.z.com ogg21cora

Connectivity between ZDM Service Host, Source, Target, and


GoldenGate Hub
Configure the /etc/hosts file as a first step to ensure connectivity between the ZDM Service Host and the Source
and Target Database servers. As the root user on the ZDM Service Host, adding the Source Database server,
Target Database server, and OGG Hub information:
[root@zdmhost zdminstall]# vi /etc/hosts

[root@zdmhost]# vi /etc/hosts

Source_ip source.publicsubnet.xyz.xyz.com source ##Source Database

Target_ip target.publicsubnet.xyz.xyz.com target ##Target Database

GGHub_ip ogg_fqdn ogg_hostname ##OGG Hub

For more information regarding connectivity, please visit Oracle Zero Downtime Migration’s product
documentation at: https://docs.oracle.com/en/database/oracle/zero-downtime-migration

Backup Location
Object Storage Requirements
When migrating to OCI Native Databases, ZDM requires a backup location to export Data Pump dump files. The
Target Database service can leverage them for instantiating the Target Database; this backup location will be an
Object Storage bucket within the customer’s tenancy. To create an Object Storage bucket in your OCI Dashboard,
select the hamburger menu in the top left, click on Storage, and then on Buckets. Click on Create Bucket.

The following details are required:


• Bucket Name: For this step-by-step guide, the name used will be ZDMBucket; please enter this or the
name of your choice.
• Default Storage Tier: For this step-by-step guide, Standard will be used; please select this or the tier
appropriate to your use case.
• Encryption: For this step-by-step guide, Encrypt using Oracle-managed keys will be used; please select
this or the tier appropriate to your use case.

There are also options for Tags; this step-by-step guide does not use them, but please evaluate and select
according to your use case and needs.

Next, on the Details page, the two most important pieces of information you need to save are the bucket name
and the namespace; keep them; they will be required for the migration later.

16 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Preparing the Response File
Oracle Zero Downtime Migration leverages a response file that is fully customizable by the customer. A wide array
of parameters for the logical migration methodology allows the customer to configure the migration according to
the appropriate use case. This step-by-step guide uses a specific set of response file parameters; a detailed
description is present only for the parameters used here. For more information on the complete response file
parameters for logical migration, refer to ZDM’s Product Documentation section Zero Downtime Migration
Logical Migration Response File Parameters Reference.
o https://docs.oracle.com/en/database/oracle/zero-downtime-migration/index.html

Response File Parameters used in this guide


• Parameter: MIGRATION_TYPE
o Description: ZDM will leverage Data Pump and Oracle GoldenGate for the migration process.
(LOGICAL_ONLINE)
• Parameter: DATA_TRANSFER_MEDIUM
o Description: Object Storage Service. (OSS)
• Parameter: TARGETDATABASE_OCID
o Description: Specifies the connection details for the Oracle Cloud resource identifier for the
Target Database.
• Parameter: TARGETDATABASE_ADMINUSERNAME
o Description: Specifies the Target Database administrator’s username.
• Parameter: SOURCEDATABASE_ADMINUSERNAME
o Description: Specifies the Source Database administrator’s username.
• Parameter: SOURCEDATABASE_CONNECTIONDETAILS_HOST
o Description: Specifies the listener hostname or IP address.
• Parameter: SOURCEDATABASE_CONNECTIONDETAILS_PORT
o Description: Specifies the listener port number.
• Parameter: TARGETDATABASE_CONNECTIONDETAILS_SERVICENAME
o Description: Specifies the fully qualified service name
• Parameter: TARGETDATABASE_CONNECTIONDETAILS_HOST
o Description: Specifies the listener hostname or IP address
• Parameter: TARGETDATABASE_CONNECTIONDETAILS_PORT
o Description: Specifies the listener port number.
• Parameter: OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_TENANTID
o Description: Specifies the OCID of the OCI tenancy.
• Parameter: OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_USERID
o Description: Specifies the OCID of the IAM user.
• Parameter: OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_FINGERPRINT
o Description: Specifies the fingerprint of the public API key.
• Parameter: OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_PRIVATEKEYFILE
o Description: Specifies the absolute path of the API private key file.

17 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
• Parameter: OCIAUTHENTICATIONDETAILS_REGIONID
o Description: Specifies the OCI region identifier.
• Parameter: SOURCEDATABASE_GGADMINUSERNAME
o Description: Specifies the GoldenGate administrator’s username.
• Parameter: TARGETDATABASE_GGADMINUSERNAME
o Description: Specifies the GoldenGate administrator’s username for the Target Database.
• Parameter: GOLDENGATEHUB_ADMINUSERNAME
o Description: Specifies the GoldenGate Hub administrator’s username.
• Parameter: GOLDENGATEHUB_URL
o Description: Specifies the GoldenGate Hub’s REST endpoint.
• Parameter: GOLDENGATEHUB_SOURCEDEPLOYMENTNAME
o Description: Specifies the name of the GoldenGate Microservices deployment to operate on the
Source Database. Since OGG 21c, there is only one deployment, and hence the name of the
deployment will be the same in this parameter, and the next one (target deployment name)
• Parameter: GOLDENGATEHUB_TARGETDEPLOYMENTNAME
o Description: Specifies the name of the GoldenGate Microservices deployment to operate on the
Target Database. Since OGG 21c, there is only one deployment, and hence the name of the
deployment will be the same in this parameter and the previous one (source deployment name)
• Parameter: GOLDENGATEHUB_COMPUTEID
o Description: Specifies the Oracle Cloud identifier of the VM.
• Parameter: GOLDENGATEHUB_ALLOWSELFSIGNEDCERTIFICATE
o Description: specify this parameter to TRUE in the response file, this tells ZDM to trust the self-
signed HTTPS certificate.
• Parameter: DATAPUMPSETTINGS_JOBMODE
o Description: Specifies the Data Pump export mode: FULL, SCHEMA, TABLE.
• Parameter: DATAPUMPSETTINGS_DATAPUMPPARAMETERS_IMPORTPARALLELISMDEGREE
o Description: Specifies the maximum number of worker processes a Data Pump import job can
use.
• Parameter: DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXPORTPARALLELISMDEGREE
o Description: Specifies the maximum number of worker processes a Data Pump export job can
use.
• Parameter: DATAPUMPSETTINGS_DATABUCKET_NAMESPACENAME
o Description: Specifies the object storage bucket namespace.
• Parameter: DATAPUMPSETTINGS_DATABUCKET_BUCKETNAME
o Description: Specifies the object storage bucket name.
• Parameter: DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_NAME
o Description: Specifies a directory name on the source server to store the Data Pump Export
dump files. ZDM will create this object if it does not exist already.
• Parameter: DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_PATH
o Description: Specifies a directory path on the source server to store the Data Pump Export dump
files. ZDM will create this object if it does not exist already.

18 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
• Parameter: DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_NAME
o Description: Specifies a directory path on the target server to store the Data Pump Export dump
files. ZDM will create this object if it does not exist already.
• Parameter: DATAPUMPSETTINGS_CREATEAUTHTOKEN
o Description: Specifies if an OCI Authentication Token is needed to be created for the specified
OCI user to import the Data Dump Files from the Object Storage into an Autonomous Database.
For DBCS/ExaCS migration, this parameter is FALSE.

To run the migration described in this step-by-step guide, the sample response file will be as follows.

As the zdmuser, run the following commands:

[zdmuser@zdmhost ]$ cd ~

[zdmuser@zdmhost ]$ mkdir template

[zdmuser@zdmhost ]$ cp /u01/app/zdmhome/rhp/zdm/template/zdm_logical_template.rsp
~/template

[zdmuser@zdmhost ]$ cd template

[zdmuser@zdmhost ]$ cp zdm_logical_template.rsp zdm_logical_online.rsp

[zdmuser@zdmhost ]$ vi zdm_logical_online.rsp

:%d

The :%d command in vi deletes all of the existing lines. After deleting the content of the file, paste the below
contents into the empty file:
# migration method
MIGRATION_METHOD=ONLINE_LOGICAL
DATA_TRANSFER_MEDIUM=OSS

# target db 19c OCID and ADMIN USER


TARGETDATABASE_OCID=ocid1.database.oc1.xyz.xyz <UPDATE>
TARGETDATABASE_ADMINUSERNAME=SYSTEM

# source db
SOURCEDATABASE_ADMINUSERNAME=SYSTEM
SOURCEDATABASE_CONNECTIONDETAILS_HOST=source
SOURCEDATABASE_CONNECTIONDETAILS_PORT=1521
SOURCEDATABASE_CONNECTIONDETAILS_SERVICENAME=SOURCE_DB.xyz.xyz.oraclevcn.com <UPDATE>

# target db(PDB)
TARGETDATABASE_CONNECTIONDETAILS_HOST=target
TARGETDATABASE_CONNECTIONDETAILS_PORT=1521
TARGETDATABASE_CONNECTIONDETAILS_SERVICENAME=pdb1.publicsubnet.xyz.xyz.com <UPDATE>

# oci cli
OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_TENANTID=ocid1.tenancy.oc1.xyz.xyz <UPDATE>
OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_USERID=ocid1.user.oc1..xyz <UPDATE>

19 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_FINGERPRINT=xyzxyzxyzxyzxyzxyz <UPDATE>
OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_PRIVATEKEYFILE=/home/zdmuser/.oci/oci_api_key.pem
<UPDATE>
OCIAUTHENTICATIONDETAILS_REGIONID=UPDATE-WITH-YOUR-REGION <UPDATE>

## GoldenGate
SOURCEDATABASE_GGADMINUSERNAME=ggadmin
TARGETDATABASE_GGADMINUSERNAME=ggadmin
GOLDENGATEHUB_ADMINUSERNAME=oggadmin
GOLDENGATEHUB_URL=https://ogg21cora.publicsubnet.xyz.xyz.com <UPDATE>
GOLDENGATEHUB_SOURCEDEPLOYMENTNAME=OGGDEPLOYMENT NAME <UPDATE>
GOLDENGATEHUB_TARGETDEPLOYMENTNAME=OGGDEPLOYMENT NAME <UPDATE>
GOLDENGATEHUB_COMPUTEID=ocid1.instance.oc1.xyz.xyx.xyz <UPDATE>

# data pump
DATAPUMPSETTINGS_JOBMODE=SCHEMA
INCLUDEOBJECTS-1=owner:TEST
DATAPUMPSETTINGS_DATAPUMPPARAMETERS_IMPORTPARALLELISMDEGREE=2
DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXPORTPARALLELISMDEGREE=2
DATAPUMPSETTINGS_DATABUCKET_NAMESPACENAME=namespace <UPDATE>
DATAPUMPSETTINGS_DATABUCKET_BUCKETNAME=name <UPDATE>
DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_NAME=DATA_PUMP_DIR
DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_PATH=/u01/app/oracle/product/11.2.0.4/dbhome_1/rdbm
s/log/
DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_NAME=DATA_PUMP_DIR
DATAPUMPSETTINGS_CREATEAUTHTOKEN=FALSE

As you can see, there are several parameters whose value is <UPDATE>, this is for illustration purposes of this
step-by-step guide; please update with the values of your environment as described above.

Logical Online Migration to DBCS and ExaCS with


ZDM
Performing a Test Database Migration in Evaluation Mode
Oracle Zero Downtime Migration includes an evaluation mode that performs a dry run of the migration process;
this is an optional step. It allows customers to ensure that the migration runs swiftly and encounters no issues.
When migrating with the evaluation flag on, ZDM evaluates all the different stages and will alert the user if there
are any inconsistencies or potential issues; this way, customers can fix any problems beforehand. As a best
practice, run a Test Database Migration before executing the migration. To do this, please perform as follows:
[zdmuser@zdmhost logs]$ $ZDM_HOME/bin/zdmcli migrate database -sourcedb SOURCE_DB \
-sourcenode source \
-srcauth zdmauth \
-srcarg1 user:opc \
-srcarg2 identity_file:/home/zdmuser/.ssh/zdm.ppk \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode target -rsp /home/zdmuser/logical_online.rsp \
-tgtauth zdmauth \
-tgtarg1 user:opc \

20 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
-tgtarg2 identity_file:/home/zdmuser/.ssh/zdm.ppk \
-tgtarg3 sudo_location:/usr/bin/sudo \
-eval

Bear in mind that -sourcedb is used for databases where the source is part of an Oracle Grid Infrastructure
deployment; for Source Databases that are single instance with no Oracle Grid Infrastructure (using Logical
Volume Manager instead), please use -sourcesid with the source ORACLE_SID.

ZDM will then request the different required passwords and generate a job id.
zdmhost.publicsubnet.xyz.xyz.com: Audit ID: 264
Enter Source Database administrative user "SYSTEM" password: WElcome##1234
Enter Source Database administrative user "ggadmin" password: WElcome##1234
Enter Target Database administrative user "ADMIN" password: WElcome##1234
Enter Target Database administrative user "ggadmin" password: WElcome##1234
Enter Oracle GoldenGate hub administrative user "oggadmin" password: your password
Enter Authentication Token for OCI user "ocid1.user.oc1..xyz": your token
Enter Data Pump encryption password: WElcome##1234
Operation "zdmcli migrate database" scheduled with the job ID "90".

The generated job id can be queried for progress using the zdmcli query job -jobid job_id command.

[zdmuser@zdmhost logs]$ $ZDM_HOME/bin/zdmcli query job -jobid 90


zdmhost.publicsubnet.xyz.xyz.com: Audit ID: 280
Job ID: 90
User: zdmuser
Client: zdmhost
Job Type: "EVAL"
Scheduled job command: "zdmcli migrate database -sourcedb SOURCE_DB -sourcenode source -srcauth
zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/zdm.ppk -srcarg3
sudo_location:/usr/bin/sudo -targetnode target -rsp /home/zdmuser/logical_online.rsp -tgtauth
zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm.ppk -tgtarg3
sudo_location:/usr/bin/sudo -eval"
Current status: SUCCEEDED
ZDM_VALIDATE_TGT ....................... COMPLETED
ZDM_VALIDATE_SRC ...................... COMPLETED
ZDM_SETUP_SRC ......................... COMPLETED
ZDM_PRE_MIGRATION_ADVISOR ........... COMPLETED
ZDM_VALIDATE_GG_HUB ...... COMPLETED
ZDM_VALIDATE_DATAPUMP_SETTINGS_SRC .... COMPLETED
ZDM_VALIDATE_DATAPUMP_SETTINGS_TGT .... COMPLETED
ZDM_CLEANUP_SRC .................. COMPLETED

Performing a Database Migration


To perform the database migration once the migration command with the evaluation flag is completed
successfully and without errors and warnings, run the same command without the -eval option:
[zdmuser@zdmhost logs]$ $ZDM_HOME/bin/zdmcli migrate database -sourcedb SOURCE_DB \
-sourcenode source \
-srcauth zdmauth \
-srcarg1 user:opc \
-srcarg2 identity_file:/home/zdmuser/.ssh/zdm.ppk \
-srcarg3 sudo_location:/usr/bin/sudo \
-rsp /home/zdmuser/logical_online.rsp \
zdmhost.publicsubnet.xyz.xyz.com: Audit ID: 271
Enter Source Database administrative user "SYSTEM" password: WElcome##1234
Enter Source Database administrative user "ggadmin" password: WElcome##123
Enter Target Database administrative user "ADMIN" password: WElcome##1234
Enter Target Database administrative user "ggadmin" password: WElcome##1234
Enter Oracle GoldenGate hub administrative user "oggadmin" password: your password

21 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Enter Authentication Token for OCI user "ocid1.user.oc1..xyz": your token
Enter Data Pump encryption password: WElcome##1234
Operation "zdmcli migrate database" scheduled with the job ID "91".

Proceed to periodically query the migration job with the provided migration job id until completed:
[zdmuser@zdmhost ~]$ $ZDM_HOME/bin/zdmcli query job -jobid 91
zdmhost.publicsubnet.xyz.xyz.com: Audit ID: 307
Job ID: 34
User: zdmuser
Client: zdmhost
Job Type: "MIGRATE"
Scheduled job command: "zdmcli migrate database -sourcedb SOURCE_DB -sourcenode source -
srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/zdm.ppk -
srcarg3 sudo_location:/usr/bin/sudo -rsp /home/zdmuser/logical_online.rsp"
Current status: SUCCEEDED
ZDM_VALIDATE_TGT ...................... COMPLETED
ZDM_VALIDATE_SR ...................... COMPLETED
ZDM_SETUP_SRC ......................... COMPLETED
ZDM_PRE_MIGRATION_ADVISOR ............ COMPLETED
ZDM_VALIDATE_GG_HUB ................... COMPLETED
ZDM_VALIDATE_DATAPUMP_SETTINGS_SRC .... COMPLETED
ZDM_VALIDATE_DATAPUMP_SETTINGS_TGT .... COMPLETED
ZDM_PREPARE_GG_HUB .................... COMPLETED
ZDM_ADD_HEARTBEAT_SRC ................. COMPLETED
ZDM_ADD_SCHEMA_TRANDATA_SRC ........... COMPLETED
ZDM_CREATE_GG_EXTRACT_SRC ............. COMPLETED
ZDM_PREPARE_DATAPUMP_SRC .............. COMPLETED
ZDM_PREPARE_DATAPUMP_TGT .............. COMPLETED
ZDM_DATAPUMP_EXPORT_SRC ............... COMPLETED
ZDM_UPLOAD_DUMPS_SRC .................. COMPLETED
ZDM_DATAPUMP_IMPORT_TGT ............... COMPLETED
ZDM_POST_DATAPUMP_SRC ................. COMPLETED
ZDM_POST_DATAPUMP_TGT ................. COMPLETED
ZDM_ADD_HEARTBEAT_TGT ................. COMPLETED
ZDM_ADD_CHECKPOINT_TGT ................ COMPLETED
ZDM_CREATE_GG_REPLICAT_TGT ............ COMPLETED
ZDM_MONITOR_GG_LAG .................... COMPLETED
ZDM_SWITCHOVER_APP .................... COMPLETED
ZDM_RM_GG_EXTRACT_SRC ................. COMPLETED
ZDM_RM_GG_REPLICAT_TGT ................ COMPLETED
ZDM_DELETE_SCHEMA_TRANDATA_SRC ........ COMPLETED
ZDM_RM_HEARTBEAT_SRC .................. COMPLETED
ZDM_RM_CHECKPOINT_TGT ................. COMPLETED
ZDM_RM_HEARTBEAT_TGT .................. COMPLETED
ZDM_CLEAN_GG_HUB ...................... COMPLETED
ZDM_POST_ACTIONS ...................... COMPLETED
ZDM_CLEANUP_SRC ....................... COMPLETED

22 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Troubleshooting & Other Resources
For Oracle ZDM log review:
Ÿ ZDM Server host logs:
o Check - $ZDM_BASE/crsdata/zdmserver.log.0
Ÿ ZDM source node Data Pump logs:
o DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_PATH
Ÿ ZDM target node logs:
o DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_NAME
Ÿ Import Log
o OSS Bucket
Ÿ OGG hub logs:
o /u02/deployments/<ogg_deployment_name>/var/log

For all Oracle Support Service Requests related to Zero Downtime Migration, please be sure to follow the
instructions in My Oracle Support Document:
- SRDC – Data Collection for Database Migration Using Zero Downtime Migration (ZDM) (DOC ID
2595205.1)
- https://support.oracle.com/epmos/faces/DocContentDisplay?id=2595205.1

All common issues are documented and updated periodically in Oracle Zero Downtime Migration’s product
documentation, specifically in the Product Release Notes, Known Issues section:

o https://docs.oracle.com/en/database/oracle/zero-downtime-migration/index.html

Please review our Maximum Availability Architecture document for best practices related to Zero Downtime
Migration.
- MAA Practices for Cloud Migration Using ZDM (Doc ID 2562063.1)
- https://support.oracle.com/epmos/faces/DocContentDisplay?id=2562063.1

23 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates
Connect with us

Call +1.800.ORACLE1 or visit oracle.com. Outside North America, find your local office at: oracle.com/contact.

blogs.oracle.com facebook.com/oracle twitter.com/oracle

Copyright © 2023, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only, and the contents hereof are subject to change without
notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties
and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document, and no contractual obligations are formed
either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without
our prior written permission.
This device has not been authorized as required by the rules of the Federal Communications Commission. This device is not, and may not be, offered for sale or lease, or sold or
leased, until authorization is obtained.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of
SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered
trademark of The Open Group. 0120

24 Business / Technical Brief / Logical Migration and In-Flight Upgrade from On-Premises to DBCS and ExaCS / Version 1.2
Copyright © 2023, Oracle and/or its affiliates

You might also like