Migrating Oracle Databases to Exadata on Google Cloud: Strategies & Best Practices
Moving an Oracle database onto Exadata in a Google Cloud region is mostly a networking and method-selection problem, not a hardware one. Pick the method that matches your downtime, platform and version constraints, rehearse it, and the cutover becomes a short, boring event.
On this page
- 01 · Why a Google Cloud Migration Needs Its Own Plan
- 02 · The Target Landscape on Google Cloud
- 03 · Assess the Source Before You Pick a Method
- 04 · Choosing a Migration Strategy
- 05 · How Data Actually Moves
- 06 · Running a ZDM Physical Online Migration
- 07 · Cutover, Validation and Rollback
- 08 · Best Practices and Pitfalls on Google Cloud
- 09 · Key Takeaways
- 10 · Frequently Asked Questions
01 · Why a Google Cloud Migration Needs Its Own Plan
Migration playbook · Oracle to Exadata on Google Cloud
"The applications are moving to Google Cloud. What happens to the Oracle databases?"
For years the honest answer was awkward. You could rehost Oracle on Compute Engine VMs and lose Exadata features, keep the databases on-premises and accept cross-network latency, or move them to OCI and connect back over an interconnect. Oracle AI Database@Google Cloud (launched as Oracle Database@Google Cloud, generally available since September 2024) changed that: Exadata now sits inside Google Cloud data centers, operated by OCI, next to your GKE clusters and Compute Engine VMs.
That removes the platform objection, but it does not migrate a single byte for you. The source might be an 11.2 database on AIX, a 19c RAC cluster on Linux, or a non-CDB never touched by multitenant. Each needs a different method, and the choice decides how long the business is offline, how much network you need and how easy it is to roll back.
02 · The Target Landscape on Google Cloud
Answer: You migrate into an Exadata VM cluster that Oracle runs inside a Google Cloud region. Your source reaches it over Cloud Interconnect or VPN into your VPC, where client and backup subnets connect to the Oracle-operated Exadata site. ZDM, GoldenGate and staging storage sit alongside in your project.
Three Oracle services are offered through Oracle AI Database@Google Cloud, and the right target changes the migration details. Exadata Database Service on Dedicated Infrastructure (ExaDB-D) gives you whole database and storage servers. Exadata Database Service on Exascale Infrastructure (ExaDB-XS) gives you a VM cluster on shared Exadata pools billed by ECPU and storage. Autonomous AI Database removes most DBA tasks but accepts only logical migration methods, because you cannot restore an RMAN backup into it.
| Target | Physical methods (Data Guard, RMAN) | Logical methods (GoldenGate, Data Pump) | Typical use |
|---|---|---|---|
| ExaDB-D | Yes | Yes | Large consolidated estates, ERP, core OLTP |
| ExaDB-XS (Exascale) | Yes, on supported releases | Yes | Small to mid databases, dev and test, elastic growth |
| Autonomous AI Database | No | Yes | New or refactored applications |
The topology below is the one most enterprise migrations end up with. The source data center connects over Cloud Interconnect. In your project you run a ZDM host on a Compute Engine VM, optionally a GoldenGate hub, and a staging bucket. The target VM cluster lives in the Oracle-operated Exadata site; its control plane, and optionally its backups, live in the OCI parent region.
Read the three horizontal rows as the three ways data can travel: purple dashed redo for Data Guard, purple dashed trail files through the GoldenGate hub, and solid black backup or dump files through a staging bucket. The grey ZDM lines carry only SSH orchestration, never bulk data, so the ZDM host can stay small.
03 · Assess the Source Before You Pick a Method
Answer: Run a structured assessment first: platform and endianness, database release, character set, multitenant status, size, change rate and downtime budget. Oracle's Cloud Premigration Advisor Tool (CPAT) and AWR data answer most of these questions in a day.
What to collect for every database
| Attribute | How to find it | Why it matters |
|---|---|---|
| Platform / endianness | V$TRANSPORTABLE_PLATFORM joined to V$DATABASE.PLATFORM_NAME |
Exadata is Linux x86-64 (little-endian). Big-endian sources (AIX, Solaris SPARC, HP-UX) rule out Data Guard. |
| Release and patch level | V$VERSION, opatch lspatches |
Physical methods need a matching release on the target; logical methods can upgrade in flight. |
| Multitenant status | SELECT cdb FROM v$database |
Cloud Exadata targets are CDB based. A non-CDB must be converted to a PDB during or after the move. |
| Size and change rate | DBA_SEGMENTS, AWR redo per second |
Drives the initial copy time and the network bandwidth you must reserve. |
| Character set | NLS_DATABASE_PARAMETERS |
AL32UTF8 is the norm on new targets; a conversion forces a logical method. |
Run CPAT against each source with the intended target type and keep its report with the migration plan: it flags objects and features a logical method or an Autonomous target will not carry. For sizing, look at peak redo generation in AWR: a database that writes 40 MB of redo per second at month end needs that much sustained interconnect bandwidth, plus headroom.
04 · Choosing a Migration Strategy
Answer: Use ZDM physical online (Data Guard) when the source is Linux x86-64 on a supported release and downtime must be minutes. Use ZDM logical online (GoldenGate) when you must also change release, platform or structure. Use offline RMAN or Data Pump when a maintenance window of hours is acceptable.
Once the assessment is done, the decision is mechanical. Platform comes first because it removes options, downtime separates online from offline methods, and release and scope pick the exact path. Treat the flow below as a default and record any exception in your decision log.
The two online outcomes on the left are both orchestrated by ZDM, and they differ in one thing: physical keeps the database block for block, so the release must match, while logical rebuilds it, so it can absorb an upgrade, a non-CDB to PDB conversion or a character set change. The red cross-platform box is where most AIX and Solaris estates land.
| Method | Tooling | Downtime | Release change | Best for |
|---|---|---|---|---|
| Physical online | ZDM + Data Guard (RMAN instantiation) | Minutes (switchover) | No, upgrade after | Large Linux x86-64 databases |
| Logical online | ZDM + GoldenGate + Data Pump, or OCI Database Migration | Minutes | Yes | Upgrades, reorganisations, Autonomous targets |
| Physical offline | ZDM or manual RMAN backup and restore | Hours | No | Medium databases with a weekend window |
| Logical offline | Data Pump export and import | Hours to a day | Yes | Small databases, schema-level moves |
| Cross-platform | XTTS incremental, GoldenGate | Minutes to hours | Yes | AIX, Solaris SPARC, HP-UX sources |
05 · How Data Actually Moves
Answer: Data reaches the Google Cloud target in one of three ways: as redo shipped by Data Guard, as trail records replicated by GoldenGate after an initial Data Pump load, or as backup and dump files staged in object storage and restored on Exadata.
Each path puts a different load on your network and gives a different rollback story. The walkthrough below follows one example of each from the first byte to the cutover. The step counts are similar; where the downtime sits is not.
The tags on the right are the key reading: both online paths confine downtime to step 3, the moment applications are pointed at the new primary. The offline path pays for its simplicity with a window that grows with database size, which is why it is usually reserved for databases that fit a weekend.
Physical online: redo over Cloud Interconnect
ZDM instantiates the target with RMAN, by restoring from service over the network or from a staged backup, then configures Data Guard so redo flows to the new standby on Exadata. When you resume the paused job, ZDM switches over and the old primary becomes a standby: your fastest rollback.
Logical online: GoldenGate after an initial load
ZDM takes a Data Pump export at a known SCN, imports it into the target PDB, then starts GoldenGate replicats from that SCN. The hub can be OCI GoldenGate or GoldenGate Microservices on a Compute Engine VM. Because the target is rebuilt rather than copied, this path tolerates upgrades and structural change.
Offline: files through a staging bucket
For a weekend migration you stop the application, take an RMAN backup or a Data Pump export, copy it to a bucket, and restore or import on the target. Staging can be Google Cloud Storage, OCI Object Storage or an NFS share; check which media your ZDM release and target support before you design around one. RMAN backups to OCI Object Storage use the Oracle Database Cloud Backup Module, and the same bucket can later hold the database's regular backups.
06 · Running a ZDM Physical Online Migration
Answer: Install ZDM on a Linux host that can reach both databases over SSH and SQL*Net, prepare a response file, run an evaluation with -eval, then run the real job paused after Data Guard is configured. Resume it only in the agreed cutover window.
ZDM does most of the orchestration, but it relies on clean prerequisites. This is the sequence we use for 19c Linux sources moving to ExaDB-D or ExaDB-XS on Google Cloud.
- Build the ZDM host. A small Compute Engine VM (Oracle Linux) in your VPC, with SSH key access to the source and target database hosts and port 1521 open both ways through the interconnect and your VPC firewall rules.
- Create the empty target database. Provision a database on the target VM cluster with the same release, a matching DB_NAME and a unique DB_UNIQUE_NAME. ZDM replaces its datafiles during instantiation.
- Prepare the response file. Set
MIGRATION_METHOD=ONLINE_PHYSICAL,DATA_TRANSFER_MEDIUM(for example DIRECT for restore from service, or an object storage option),TGT_DB_UNIQUE_NAMEand, for a non-CDB source, the non-CDB to PDB conversion option. - Run an evaluation. Add
-evalto the migrate command. ZDM checks connectivity, versions, TDE, archive log mode and space without changing anything. - Run the job and pause. Use
-pauseafter ZDM_CONFIGURE_DG_SRCso ZDM stops once the standby is in sync. Watch apply lag withzdmcli query joband Data Guard broker. - Cut over in the window. Stop the application, run
zdmcli resume job, let ZDM switch over, then repoint connection strings or DNS to the new primary.
zdmcli migrate database \
-sourcedb PRODDB -sourcenode srcdb01.corp.example \
-srcauth zdmauth -srcarg1 user:oracle \
-srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa -srcarg3 sudo_location:/usr/bin/sudo \
-targetnode exa-vm1 -tgtauth zdmauth -tgtarg1 user:opc \
-tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa -tgtarg3 sudo_location:/usr/bin/sudo \
-rsp /home/zdmuser/proddb_physical.rsp -pauseafter ZDM_CONFIGURE_DG_SRC
zdmcli query job -jobid 42
zdmcli resume job -jobid 42
07 · Cutover, Validation and Rollback
Answer: Rehearse the full cutover at least once on a copy, validate row counts, invalid objects and performance before go-live, and keep the old database as a synchronized fallback until the business signs off.
The switch takes minutes; the surrounding work takes the day. A good runbook covers freeze, switch, validate and decide.
- Freeze. Stop batch schedulers and application tiers, confirm zero apply lag or zero GoldenGate lag, and record the final SCN.
- Switch. Resume the ZDM job or run the Data Guard switchover, then update connect strings. A Cloud DNS record or a SCAN alias in the application configuration makes this a one-line change.
- Validate. Compare object and row counts on key tables, recompile with
utlrp.sqland checkDBA_INVALID_OBJECTS, gather optimizer statistics, and run a short workload smoke test from the GKE or Compute Engine tier. - Decide. Keep reverse redo or reverse GoldenGate replication running for an agreed period, so you can fail back without data loss if something unexpected appears.
Plans can change after an upgrade or a statistics refresh, so capture a SQL Tuning Set on the source and run SQL Performance Analyzer on the target before users notice a regression.
A migration is finished when the business has run on the new database through a full business cycle and nobody has asked to go back, not when the switchover command returns.
08 · Best Practices and Pitfalls on Google Cloud
The same issues come up on almost every Google Cloud Exadata project, and most are about networking rather than the database.
| Pitfall | What goes wrong | Prevention |
|---|---|---|
| CIDR overlap | Client or backup subnet ranges clash with on-prem or other VPC ranges | Reserve non-overlapping ranges before provisioning |
| Undersized interconnect | Initial copy or redo transport cannot keep up | Size from AWR peak redo, add headroom, test throughput |
| Firewall gaps | ZDM evaluation fails on SSH or 1521 | Open VPC firewall rules and on-prem rules both ways early |
| Version surprise | Target release not certified for the application | Confirm certification before choosing physical vs logical |
| No fallback | A post-cutover defect forces a risky emergency fix | Keep reverse replication until sign-off |
Habits that make migrations boring
- Migrate in waves. Start with a non-critical database to validate the network, ZDM host and runbook, then move the larger ones.
- Plan backups on day one. Decide whether the target uses OCI Object Storage, Autonomous Recovery Service or Google Cloud Storage for backups, and test a restore before go-live.
- Wire up monitoring. Use Cloud Monitoring and Cloud Logging alongside OCI metrics, so operations see one picture after cutover.
- Confirm support. Method support differs by target service, release and ZDM version. Check the current ZDM documentation for your exact combination and say so in the plan.
09 · Key Takeaways
- The target is Exadata inside Google Cloud. Oracle AI Database@Google Cloud places ExaDB-D, ExaDB-XS and Autonomous AI Database next to your applications, reached through subnets in your VPC.
- Assessment picks the method. Platform and endianness, release, multitenant status, size, redo rate and downtime budget decide between physical, logical and offline paths.
- ZDM does the orchestration. Physical online with Data Guard for like-for-like Linux moves, logical online with GoldenGate when you must also upgrade or restructure.
- Network capacity is a migration dependency. Size Cloud Interconnect from peak redo and initial copy volume, and fix firewall and CIDR issues before the first rehearsal.
- Keep a way back. Rehearse the cutover, validate with real workload checks, and keep reverse replication until the business signs off.
10 · Frequently Asked Questions
Can I use Zero Downtime Migration to move Oracle databases to Exadata on Google Cloud?
Yes. ZDM supports physical online migration with Data Guard, logical online migration with GoldenGate and Data Pump, and offline methods to Exadata targets. Check the current ZDM documentation for the exact target service, release and data transfer medium you plan to use.
How do I migrate an Oracle database from AIX to Exadata on Google Cloud?
AIX is big-endian and Exadata runs Linux x86-64, so Data Guard cannot replicate directly. Use cross-platform transportable tablespaces with incremental backups, GoldenGate, or Data Pump, depending on size and downtime tolerance.
What network connection do I need for the migration?
Most enterprises use Cloud Interconnect from the source data center into their Google Cloud VPC, with routing to the client and backup subnets of the Exadata VM cluster. Size it from the initial copy volume and the peak redo rate of the source.
Can I upgrade the database release during the migration?
Yes, with a logical method. ZDM logical online migration with GoldenGate and Data Pump rebuilds the database on the target and can move to a newer release. Physical methods need the same release and you upgrade after the move.
Learn this hands-on
Practice Exadata, OCI and multi-cloud architectures in live labs with a practicing consultant.
More in Multi-cloud
Exadata Exascale Architecture Explained: Elastic Compute and Storage for Oracle Databases
How Exascale decouples compute and storage and scales each independently for Oracle databases.
Workload suitabilityChoosing Exadata Exascale for Enterprise Oracle Workloads: When Does It Make Sense?
When Exascale is the right fit for enterprise workloads, and when dedicated Exadata serves better.
NetworkingOracle Exadata Multi-Cloud Networking: Designing Connectivity Across AWS, Azure & Google Cloud
Designing resilient, low-latency connectivity for Exadata deployments that span AWS, Azure and Google Cloud.