Skip to main content

Command Palette

Search for a command to run...

How to install Oracle Zero Downtime Migration (ZDM)

Updated
4 min read
How to install Oracle Zero Downtime Migration (ZDM)
M

nerd, consultant, dba (not always in that order) curious about postgres, oracle, kafka and other tech stuff addicted to books, music and podcasts

Oracle Zero Downtime Migration (ZDM) is a free to use software which allows you to automate your database migrations to OCI, multicloud and onprem systems

some Prerequisites

It's highly recommended to have a dedicated host for the ZDM installation.

The host must match the following prerequisites:

  • 100GB of free space

  • Oracle Linux 8, Oracle Linux 9 or Redhat 8

  • network access to both, source and target database nodes

(I was using an AWS EC2 instance)

ZDM installation

create group and user

## as root
groupadd zdm -g 1001
useradd zdm -g 1001

install necessary OS packages

### as root
yum install glibc-devel expect libaio linsl

adapt /etc/hosts if needed

make sure your hostname is resolvable (especially on cloud instances this might be not working out of the box)

this step is crucial as the ZDM service won't start without proper hostname resolution

the simple check is to ping your hostname

create the install dirs (as zdm user)

## run as zdm user
mkdir -p /u00/app/oracle/zdmhome /u00/app/oracle/zdmbase

optional - set env vars (as zdm user)

## as zdm users
export ZDM_HOME=/u00/app/oracle/zdmhome
export ZDH_BASE=/u00/app/oracle/zdmbase

create a stage directory

mkdir $HOME/stage 

choose any dir which fits your env the most

download the software from edelivery

Download ZDM here:

https://www.oracle.com/database/technologies/rac/zdm-downloads.html#

I've used the wget script from edelivery cause it's the easiest way as you just need to copy the wget.sh and create an auth token.

afterwords execute the script enter your token and wait for the download to complete.

the other option is to download the software manually to your system and copy to the ZDM host.

wget.sh

should end with the the following zip file

ls -lth V1055491-01.zip
-rw-rw-r--. 1 zdm zdm 1.1G Apr 14 17:47 V1055491-01.zip

extract the zip

unzip V1055491-01.zip

this will give us

ll
total 1099308
-rw-rw-r--. 1 zdm zdm 1125684981 Apr 14 17:47 V1055491-01.zip
-rwxr-xr-x. 1 zdm zdm       2509 Jun 17 09:15 wget.sh
drwx------. 4 zdm zdm        179 Apr 11 17:14 zdm26.1

now we're all set to install zdm on our host

install zdm with

the installation is quite straigh forward

cd zdm26.1
./zdminstall.sh setup oraclehome=/u00/app/oracle/zdmhome oraclebase=/u00/app/oracle/zdmbase ziploc=/home/zdm/stage/zdm26.1/zdm_home.zip
ZDM kit home: /home/zdm/stage/zdm26.1
/home/zdm/stage/zdm26.1
---------------------------------------
Validating zip file...
---------------------------------------
       25  04-11-2026 17:13   rhp/zdm.build
---------------------------------------
Unzipping shiphome to home...
---------------------------------------
Unzipping shiphome...
Shiphome unzipped successfully..
---------------------------------------
##### Performing GridHome Software Only Installation #####

[...]

---------------------------------------
Adding Certs to ZDM
---------------------------------------
---------------------------------------
Adding Certs to ZDM
---------------------------------------
---------------------------------------
Adding java jre to ZDM
---------------------------------------
ZDM service setup finished successfully...

Validate the installation

$ZDM_HOME/bin/zdmservice status

---------------------------------------
        Service Status
---------------------------------------

 Running:       true
 Tranferport:
 Conn String:   jdbc:derby:/u00/app/oracle/zdmbase/derbyRepo;create=true
 Repo Path:     /u00/app/oracle/zdmbase/derbyRepo
 RMI port:      8897
 HTTP port:     8898
 SSH port:      22
 Wallet path:   /u00/app/oracle/zdmbase/crsdata/i-xxx/security
$ZDM_HOME/bin/zdmcli -build
full version: "26.1.0"
patch version: ""
label date: 260410.1
ZDM kit build date: Apr 11 2026 17:13:53 UTC
CPAT build version: 26.3.0

create ssh keys

ZDM relies on ssh passwordless connections to source and target. therefore it's crucial to create the key pair accordingly (if you don't have the already in place)

use the following to create a keypair if needed

ssh-keygen -m PEM -t rsa

copy the keys afterwards to the source and target system

ssh-copy-id -i ~/.ssh/id_rsa user@host

Conclusion

Installation of ZDM is pretty straight forward.

Important: Make sure your system has proper name resolution in place! (your hostname should resolve to an proper IP!) if hostname resolution fails zdm will fail to start.

Stay tuned for the next post around ZDM where we see how to configure ZDM to migrate Oracle databases.

Docs/Further reading

Download Link

https://www.oracle.com/database/technologies/rac/zdm-downloads.html#

Docs

https://docs.oracle.com/en/solutions/migrate-database-with-zdm/install-software-source-system.html#GUID-E6085939-CC92-4088-B788-361931843B36

Oracle Blog

https://blogs.oracle.com/maa/announcing-oracle-zero-downtime-migration-26-1

Oracle ZDM

Part 1 of 1

blog post around Oracle zero downtime migration