With Database Migration Service, you can convert your Oracle database schema, tables, and code objects to PostgreSQL syntax, and then migrate data from your Oracle databases to Cloud SQL for PostgreSQL. Database Migration Service offers support for multiple different Oracle offerings, including Bare Metal Solution, Oracle Real Application Clusters (RAC), and self-managed instances.
This page provides an overview of the key Database Migration Service features for heterogeneous Oracle to Cloud SQL for PostgreSQL migrations:
Supported source and destination lists all Oracle versions supported by Database Migration Service.
Code and schema conversion describes how Database Migration Service can help you convert your schemas, tables, and other objects from Oracle syntax to PostgreSQL syntax.
Continuous migrations data flow provides an end-to-end overview of how your data moves in Google Cloud during the migration process.
Monitoring gives an introduction for logs and metrics that can help you observe the progress and health of your migration job.
Migration security looks at encryption features offered by Database Migration Service.
Supported source and destination databases
Database Migration Service supports the following Oracle databases as migration sources:- Amazon RDS for Oracle
- Self-hosted deployments, including:
- Oracle Single Instance Database Deployment
- Oracle Exadata
- Oracle Active Data Guard
- Oracle Real Application Clusters (RAC)
Full support also depends on your source Oracle version. The following table lists all supported versions for heterogeneous Oracle migrations:
Source databases | Destination databases |
---|---|
Oracle 11g, Version 11.2.0.4 | Cloud SQL for PostgreSQL 12, 13, 14, 15. |
Oracle 12c, Version 12.1.0.2 | |
Oracle 12c, Version 12.2.0.1 | |
Oracle 18c | |
Oracle 19c | |
Oracle 21c |
Unsupported source databases
Database Migration Service doesn't support migrating from Oracle Autonomous Database.
Code and schema conversion
Database Migration Service conversion workspaces provide an interactive editor experience where you can convert your schemas, tables, and other objects from Oracle syntax to PostgreSQL syntax. Interactive conversion workspaces also provide support for Gemini-assisted workflows with code explainability and conversion issue fixing.
To learn more, see Conversion workspaces.
Continuous migrations data flow
For heterogeneous Oracle migrations to PostgreSQL, Database Migration Service supports the continuous migration flow. In this approach, your data is first loaded from a full dump, and then continuously updated based on data change information surfaced from database log files.
At a high level, your data moves through the migration phases as follows:
-
You use Database Migration Service conversion workspace to convert your schemas, tables, and other objects from Oracle syntax to PostgreSQL syntax.
Oracle databases can often have several thousand objects whose schema you need to convert. With Database Migration Service, you can divide your work into multiple phases. Database Migration Service can connect to your source databases and pull the required schema information when needed.
-
When you finish translating all your entities to PostgreSQL syntax, you apply the schema to the databases in the destination instance.
The goal of this stage is to prepare your destination databases so that Database Migration Service can later replicate the data from source tables to their correct equivalents in Cloud SQL for PostgreSQL.
Once your schema is applied, you can begin the data migration.
-
The full dump phase is the first part of the migration process. There are two ways in which you can complete full dump:
-
Automatic: Database Migration Service connects to your source instance, reads the contents of the tables you selected for migration, and then loads the data to the Cloud SQL for PostgreSQL destination instance.
In this phase, Database Migration Service captures actual contents of your database.
- Manual: You can skip the full dump phase and perform it yourself outside Database Migration Service. If you do, you can start the migration process with the change data capture (CDC) phase by providing an Oracle System Change Number as the starting point for replication.
-
-
When the full dump phase is over, Database Migration Service switches to the CDC phase. During CDC, Database Migration Service keeps monitoring your source databases for changes, and then continuously replicates them on the destination instance.
In this phase, Database Migration Service doesn't copy actual data from your source tables: instead, it reads information extracted from database log files to replicate changes in the destination. For more information about this mechanism, see Change Data Capture.
You can stop the ongoing replication and promote the migration job when you want to switch your application so that it uses the Cloud SQL for PostgreSQL destination instance as the production database. For a detailed, step-by-step migration guide, see Oracle to Cloud SQL for PostgreSQL migration guide.
Monitoring


Database Migration Service provides extensive logging and observability capabilities to help you monitor the migration progress. These features include real-time diagnostics for replication delay and CDC progress, as well as detailed logs for Cloud SQL for PostgreSQL destination instance health and migration job state.
For more details, see Migration job metrics.
Migration security
Database Migration Service provides multiple encryption mechanisms you can use for additional security during the migration process. These mechanisms include:
SSL/TLS certificates for encrypting the network connections between Database Migration Service and source databases. For more details, see Encryption overview.
Encryption certificates for securing data movement during full dump and CDC phases. For more details, see CMEK for migration jobs.
What's next
To learn more about Oracle data type and feature support in Database Migration Service, see Known limitations.
To get a complete, step-by-step migration walkthrough, see Oracle to Cloud SQL for PostgreSQL migration guide.