Oracle ZDM is basically a wrapper around Data Guard, RMAN, Data Pump, and GoldenGate that Oracle packaged up to make migrations less of a nightmare. Version 21.5 is actually not terrible compared to the early versions that would randomly fail halfway through 12-hour migrations.
How ZDM Actually Works (Not the Marketing Version)
ZDM runs on a separate "service host" - basically a Linux box that SSH's into your source and target databases and orchestrates the whole mess. The pre-checks catch about 60% of the problems you'll encounter. The other 40% you'll discover at 2am when the migration fails with some cryptic ORA-00600 error.
The tool supports two migration types that actually matter:
Physical Migration: Copies database files block-by-block using RMAN backups. Works great until you hit network timeouts during the 8-hour restore phase. Online physical migration uses Data Guard under the hood, which is solid tech when configured properly.
Logical Migration: Uses Data Pump exports/imports. Slower than molasses for large databases but handles cross-platform migrations and version upgrades that physical can't touch. Mandatory for Autonomous Database targets since they don't support physical migration.
Where You Can Actually Migrate To
ZDM works with most Oracle Cloud services, including Exadata Cloud Service, Base Database Service, and Autonomous Database. It also supports the newer multicloud stuff like Oracle Database@Azure and Oracle Database@AWS. The multicloud offerings are basically Oracle running their stack on other people's infrastructure - useful if your company has standardized on Azure or AWS but you're stuck with Oracle databases.
The Gotchas Nobody Tells You About
SSH connectivity will fuck you. ZDM requires passwordless SSH between the service host and database servers. Key-based authentication setup always takes longer than expected.
Network bandwidth matters more than Oracle admits. That "5-minute cutover" becomes 2 hours when you're copying 2TB over a shitty VPN connection.
Version compatibility is a minefield. Just because the compatibility matrix says it works doesn't mean your specific patch level won't hit undocumented issues.
Oracle support's first response to any ZDM failure: "Did you run the pre-checks?" Yes, we ran the fucking pre-checks. They passed. The migration still failed at 90% completion.
So now that you understand how ZDM works under the hood, let's talk about what Oracle promises versus what actually happens when you run this shit in production.