How would you migrate a 10 TB on-premises Oracle database to AWS with minimal downtime, given a 1 Gbps Direct Connect link, about 40 GB of changes a day and a 30-minute cut-over window?
Why they ask this
It combines bulk movement, change capture and a cut-over plan, and the arithmetic on the link decides the design before any service is named.
Say this
Do a full load while capturing changes, then cut over when replication has caught up. At 1 Gbps, 10 TB is at least 22 hours of pure transfer, so either run a DMS full load plus CDC over the link, or ship the bulk on Snowball Edge and let DMS CDC replay changes from the point the snapshot was taken.
The reasoning
**The link first.** 10 TB is 80,000 gigabits; at a full 1 Gbps that is about **22 hours**, and real throughput with protocol overhead and a shared link is lower, so plan for well over a day. That is acceptable for an online full load as long as changes are captured during it. If the link cannot be given to the migration, AWS Snowball Edge moves the bulk offline and CDC covers the gap.
**Replication.** Use **AWS DMS** with a **full load plus CDC** task (or CDC starting from a recorded SCN after a Snowball restore). The Oracle source needs **supplemental logging** and archived redo logs kept long enough to cover the full load and any stall — if DMS falls behind the retained logs, the task cannot resume. Split large tables with parallel-load settings, and let DMS cache changes made during each table's load. For a target engine change (Oracle to Aurora PostgreSQL), convert schema and code with the Schema Conversion Tool first; for a lake target, DMS writes Parquet to S3.
**Catch-up and validation.** 40 GB of change a day is small beside the link, so CDC should run at near-zero latency after the load. Turn on **DMS data validation** or compare row counts and checksums per table, and watch the `CDCLatencySource` and `CDCLatencyTarget` metrics — AWS gives no latency SLA for DMS CDC, so you measure it.
**Cut-over within 30 minutes.** Stop application writes, wait for CDC latency to reach zero, run the final validation, repoint the application (DNS or connection strings), and keep reverse replication or the old database read-only as a rollback path for an agreed period.
The answer most people give
"Export with Data Pump over the weekend and import on AWS." A 10 TB export and import over a 1 Gbps link takes longer than a weekend and gives no way to capture the changes made while it runs, so the downtime is the whole transfer.
They’ll ask next
DMS CDC latency climbs to four hours during the full load and never comes down. What do you look at?
Reported in 2 interview write-ups
