01 · The Weekend Migration Problem
A mid-size bank needs to move a 6 TB Oracle 19c database from an on-premises data center to Exadata Cloud@Customer. The DBA team estimates three weekends: one to script and test an RMAN duplicate, one to configure Data Guard for the switchover, and one held in reserve for the inevitable rollback.
The manual approach works - until a parameter mismatch, a missing TDE wallet step, or a redo transport gap surfaces mid-cutover, at 2 AM, with no automated rollback path.
Custom RMAN + Data Guard scripts, manual parameter reconciliation, no built-in rollback automation.
A single zdmcli migrate database call drives the same physical migration with built-in pause points and rollback.
Q: What is Oracle Zero Downtime Migration (ZDM)?
A: Oracle ZDM is a free orchestration utility that automates physical and logical database migrations to Oracle Cloud Infrastructure, Exadata Cloud@Customer, and on-premises targets using Data Guard, RMAN, and Data Pump under the hood, coordinated through a single response file.
02 · Why Hand-Rolled Scripts Break
Manual migration scripts fail for predictable reasons, not exotic ones. They are built for one environment, tested once, and rarely account for every parameter drift between source and target.
- Parameter Parity Gaps: Hidden parameters and deprecated initialization settings are copied by hand and easily missed.
- No Native Pause Points: A custom script either runs to completion or fails; there is no built-in checkpoint to pause before an irreversible cutover.
- Manual Rollback: Reverting a failed cutover means re-running steps backward by memory, under pressure.
- TDE Wallet Handling: Encryption key transfer is a common manual step that gets skipped or mis-sequenced.
A migration script that has never failed has simply never been tested against a real production edge case.
Each of these four failure points shares a common root cause: a hand-written script only encodes what its author remembered to check on the day they wrote it. None of them are exotic edge cases – they are the ordinary, predictable ways a first-time migration script fails under real production conditions, and every one of them is exactly what a checkpoint-based orchestration tool like ZDM is built to catch automatically.
Figure 3 · The four failure points that recur across hand-rolled migration scripts
03 · What Is Oracle ZDM?
Oracle Zero Downtime Migration is an orchestration layer, not a new migration mechanism. It drives the same trusted Oracle technologies - RMAN, Data Guard, Data Pump, GoldenGate - through a workflow engine with defined phases: ZDM_GET_SRCINFO, ZDM_GET_TGTINFO, ZDM_GET_PHYSICAL_STANDBY, and ZDM_SWITCHOVER.
Every phase writes a checkpoint. If a phase fails, ZDM can resume from that checkpoint rather than restarting the entire migration.
Notice that neither the source nor the target database ever talks directly to the other. ZDM's control host sits in the middle, connected to both ends purely over SSH, and it is the only component that needs credentials to either environment. This separation is what makes ZDM safe to run against production: a bug or crash in the orchestration layer cannot corrupt either database directly, because the host holds no database connection of its own – only shell access it uses to invoke RMAN, Data Guard, and Data Pump commands remotely.
Figure 2 · ZDM never touches source or target directly - it orchestrates over SSH from a separate control host
04 · How ZDM Orchestrates a Migration
ZDM runs from a dedicated ZDM Service Host - never on the source or target database server itself - and connects to both over SSH.
The Response File
A single text file defines source connect strings, target connect strings, migration method (online/offline, physical/logical), and TDE wallet paths.
Pause-on-Phase
DBAs can instruct ZDM to pause before the switchover phase, validate manually, then resume with zdmcli resume job.
For physical online migrations, ZDM instantiates a standby on the target using the appropriate Oracle Home, monitors redo apply lag, and only proceeds to switchover once the standby is fully synchronized.
05 · ZDM vs Manual Scripting
| Dimension | Manual Scripting | Oracle ZDM |
|---|---|---|
| Rollback | Manual, undocumented steps | Automated rollback via defined phases |
| Parameter Parity | Manually reconciled | Validated automatically pre-migration |
| Resume on Failure | Restart from scratch | Resume from last checkpoint |
| In-flight Upgrade | Separate project | Native support (e.g. 12.2 → 19c) |
| Licensing | N/A | Free orchestration tool |
| Auditability | Ad-hoc logs | Structured phase-by-phase logs |
06 · ZDM Best Practices
- Always Dry-Run FirstUse
zdmcli migrate database -evaluateto validate the response file without touching production. - Pin the Pause Point Before SwitchoverInsert a manual pause before the final cutover to validate application connectivity against the target.
- Pre-Stage TDE WalletsCopy and validate keystore wallets before starting the job to avoid a mid-migration encryption failure.
- Size the ZDM Service Host CorrectlyNetwork throughput between the ZDM host, source, and target directly bounds redo transport speed.
07 · When to Choose ZDM
Cloud Adoption Projects
Moving to OCI, ExaCC, or ExaCS with minimal application downtime tolerance.
Combined Migration + Upgrade
Moving platform and database version in one coordinated event.
Repeatable Migration Waves
Migrating dozens of databases where a consistent, auditable process matters more than a bespoke script per database.
Regulated Environments
Where structured logs and defined rollback phases are required for change-control sign-off.
08 · Technical FAQs
Does ZDM require Oracle GoldenGate licensing?
Only when a logical online migration mode is chosen. Physical online (Data Guard based) and physical offline (backup/restore based) modes do not require a GoldenGate license.
Can ZDM perform an in-flight version upgrade?
Yes. ZDM supports migrating and upgrading in the same operation, for example from 12.2 directly to 19c, using a standby built on the higher-release Oracle Home.
Where does ZDM itself need to run?
On a dedicated ZDM Service Host with SSH connectivity to both source and target - never directly on either database server.
What happens if a ZDM job fails mid-phase?
ZDM writes a checkpoint after each phase. A failed job can be resumed from the last successful checkpoint rather than restarted from zero.
Can ZDM migrate to Autonomous Database?
ZDM focuses on non-autonomous targets. Migrations to ATP/ADW typically use OCI Database Migration Service (DMS) instead.
09 · The Short Version - 8 Things Every DBA Should Know
- ZDM Orchestrates, It Doesn't ReinventUnder the hood it's still RMAN, Data Guard, Data Pump, and GoldenGate.
- Always Evaluate Before You MigrateThe
-evaluateflag runs a dry validation with zero production impact. - Response Files Are ReusableTemplate a response file once, reuse it across similar migration waves.
- Pause Points Are Your Safety NetInsert manual validation before any irreversible switchover step.
- It's FreeZDM itself carries no license cost; you pay only for the underlying Oracle technologies used.
- In-Flight Upgrades Save a ProjectCombine platform migration and version upgrade into a single coordinated event.
- Logs Are StructuredPhase-by-phase logs make ZDM migrations easier to audit than bespoke scripts.
- It Doesn't Replace DBA JudgmentZDM automates execution - the migration strategy and rollback criteria are still yours to define.
The Method Is the Migration
Manual migration scripts are not wrong - they are simply unscalable. ZDM takes the same proven Oracle mechanisms and wraps them in checkpoints, pause points, and structured rollback, turning a three-weekend project into a single auditable job.
ZDM does not replace the DBA's judgment. It replaces the DBA's risk of forgetting a step at 2 AM.
This is really the entire argument for ZDM in one number. A manual script is an all-or-nothing transaction from the DBA's point of view - if it dies three-quarters of the way through a six-hour run, the practical choice is usually to start over from scratch, because reconstructing exactly what state the source and target were left in is slow and error-prone. ZDM writes a durable checkpoint after every one of its named phases, so a failure at 3 AM costs you the time to fix the immediate problem, not the time to redo everything that already succeeded.
Figure 4 · Phase-level checkpointing is the core structural difference from a script
At ExaGuru, our Oracle Database Migration Masterclass covers ZDM, GoldenGate, XTTS, RMAN and OCI DMS migration patterns end to end.