01 · Why Architecture Matters Here
Most teams treat ZDM as a black box: point it at source and target, run the command, wait. Understanding the phase model underneath changes how migrations get planned, monitored, and integrated into larger release pipelines.
Q: Can ZDM migrations be triggered via REST API instead of the CLI?
A: Yes, ZDM exposes REST endpoints that allow migration jobs to be submitted, monitored, and paused programmatically, enabling integration into CI/CD or orchestration pipelines.
02 · The ZDM Phase Model
Each named phase is independently checkpointed. A DBA can inspect logs after any single phase, pause deliberately before ZDM_SWITCHOVER, and resume only that phase if a transient failure occurred - without re-running discovery or standby build steps that already succeeded.
Each named phase here is independently checkpointed, which is the detail most teams miss when they first read the ZDM documentation. A DBA can inspect the logs for any single phase in isolation, deliberately pause before ZDM_SWITCHOVER to run manual validation, and if something fails partway through standby build, resume from that exact phase instead of restarting source discovery from zero. The phase boundaries are not just documentation structure; they are the actual resumability contract.
This is the same control-host pattern drawn as a formal infrastructure diagram rather than a phase list. Notice the ZDM Service Host sits in its own box, physically and logically separate from both database servers, connected to each only by a dashed SSH line. Neither database ever holds credentials to the other, and the ZDM host itself never holds a direct database connection - only the shell access it needs to invoke RMAN, Data Guard, and Data Pump commands remotely on each side.
Figure 2 · The ZDM Service Host never holds a direct database connection to either side
03 · REST API Automation
Beyond the zdmcli command line, ZDM exposes REST endpoints for job submission, status polling, and phase control. This lets migration waves - dozens of databases - be triggered and monitored from an external orchestrator rather than a human running commands database by database.
An orchestrator driving this lifecycle never needs to hold an open connection or block on a long-running call – it submits the job, then polls status on its own schedule, which is exactly the pattern needed to manage dozens of concurrent migrations from a single external system. The pause and resume calls exist specifically so a human reviewer can be inserted into an otherwise fully automated pipeline at exactly the point – right before switchover – where a second pair of eyes matters most.
Figure 2 · The typical REST call sequence for an orchestrated migration wave
This is the piece that turns ZDM from a single-migration tool into a migration factory. The external orchestrator never talks to the source or target databases directly – it only talks to the ZDM Service Host's REST surface, which means the same CI/CD pipeline that triggers one migration can trigger fifty, each tracked by its own job ID, without any additional custom scripting per database.
Figure 4 · ZDM's control host sits at the center of four independent attachment points, never merging them
04 · ZDM Phases vs Ad-Hoc Runbooks
| Dimension | Ad-Hoc Runbook | ZDM Phase Model |
|---|---|---|
| Checkpointing | Manual notes, inconsistent | Automatic, per named phase |
| Automation Surface | Shell scripts only | CLI + REST API |
| Multi-Database Waves | Repeated manually per database | Orchestratable via API calls |
| Audit Trail | Ad-hoc logs, easily lost | Structured phase logs per job ID |
05 · Automation Best Practices
- Poll, Don't Block, on Long-Running PhasesStandby build and redo sync can take hours - poll job status via REST rather than holding an open session.
- Parameterize Response Files per WaveTemplate response files so a migration wave script only needs to substitute source/target identifiers.
- Centralize Phase LogsShip ZDM logs to a central location for audit, especially across multi-database migration waves.
- Isolate the ZDM Service Host's Network AccessRestrict SSH access to only the specific source/target pairs it needs for the current wave.
06 · Technical FAQs
What is a ZDM phase checkpoint?
A saved state after each named phase that allows a failed or paused job to resume without repeating already-completed work.
Is the ZDM Service Host part of the migrated environment?
No, it is a control-plane component only - it orchestrates over SSH but is never part of source or target infrastructure.
Can I run multiple ZDM jobs concurrently?
Yes, subject to the ZDM Service Host's own CPU, memory, and network capacity across concurrent SSH sessions and redo transport streams.
The Method Is the Migration
Understanding ZDM's phase model and REST surface is what turns a single successful migration into a repeatable, auditable migration factory. ExaGuru's DB Migration course covers both the CLI and API-driven automation paths.
A migration tool is only as scalable as its checkpoint model - ZDM's phases are that model.
At ExaGuru, our Oracle Database Migration Masterclass covers ZDM, GoldenGate, XTTS, RMAN and OCI DMS migration patterns end to end.