Database Migration Service (DMS) is a GCP service that performs managed migrations of on-prem or other-cloud databases into Cloud SQL, AlloyDB, BigQuery, or Firestore. With CDC-based Continuous Migration it minimizes downtime and also supports heterogeneous conversion (e.g., Oracle → PostgreSQL).
| Source | Target | Type |
|---|---|---|
| MySQL 5.5+ | Cloud SQL for MySQL | Homogeneous (free) |
| PostgreSQL 9.4+ | Cloud SQL for PostgreSQL / AlloyDB | Homogeneous (free) |
| SQL Server | Cloud SQL for SQL Server | Homogeneous |
| Oracle 11g R2+ | AlloyDB / Cloud SQL for PostgreSQL | Heterogeneous ($0.10/GB) |
| MongoDB | Firestore | Heterogeneous |
| Oracle / SQL Server | BigQuery (CDC) | Datastream |
# 1. Database Migration Assessment gcloud database-migration migration-jobs assessments create \ --source-database-engine=ORACLE \ --source-connection-profile=oracle-source \ --location=asia-northeast1 # Assessment result: migration feasibility + PL/SQL → PL/pgSQL convertibility # 2. Create connection profile (source) gcloud database-migration connection-profiles create oracle oracle-source \ --host=10.0.0.1 --port=1521 --username=migration_user \ --password=... --location=asia-northeast1 # 3. Create connection profile (target AlloyDB) gcloud database-migration connection-profiles create alloydb alloydb-target \ --alloydb-cluster=projects/PROJECT/locations/asia-northeast1/clusters/my-cluster \ --location=asia-northeast1 # 4. Create migration job (Continuous) gcloud database-migration migration-jobs create my-job \ --type=CONTINUOUS \ --source=oracle-source --destination=alloydb-target \ --location=asia-northeast1 # 5. Start (initial data transfer + CDC begins) gcloud database-migration migration-jobs start my-job --location=asia-northeast1 # 6. Check progress gcloud database-migration migration-jobs describe my-job --location=asia-northeast1 # 7. Cutover (after switching app connections) gcloud database-migration migration-jobs promote my-job --location=asia-northeast1
| Oracle | PostgreSQL/AlloyDB |
|---|---|
| VARCHAR2(n) | VARCHAR(n) |
| NUMBER | NUMERIC |
| DATE | TIMESTAMP |
| CLOB / BLOB | TEXT / BYTEA |
| SEQUENCE | SEQUENCE (syntax differences) |
| PL/SQL Stored Procedure | PL/pgSQL (auto-converted by Assessment; review required) |
| Trigger | Trigger (syntax differences) |
| View / Index | Migrated as-is |
| Item | Price |
|---|---|
| MySQL → Cloud SQL | Free (only Cloud SQL charges apply) |
| PostgreSQL → AlloyDB | Free |
| Oracle → AlloyDB | $0.10/GB processed data |
| Datastream | $0.30/GB ingested |
What is Database Migration Service (DMS)?
A managed service that migrates on-prem or other-cloud databases to Cloud SQL, AlloyDB, or BigQuery. Minimal downtime plus continuous CDC sync keeps production impact low.
Which migration paths are supported?
MySQL → Cloud SQL / AlloyDB, PostgreSQL → Cloud SQL / AlloyDB, Oracle → AlloyDB / PostgreSQL (Heterogeneous), SQL Server → Cloud SQL for SQL Server, MongoDB → Firestore.
How is it priced?
Homogeneous migrations (e.g., MySQL → MySQL) are free. Heterogeneous (Oracle → PostgreSQL) is $0.10/GB of processed data. Cloud SQL / AlloyDB charges apply separately.
How short can the downtime be?
With Continuous Migration, production keeps running while deltas sync. Only the cutover takes a few to several dozen minutes. A read-replica pattern is also possible.
What gets converted in an Oracle migration?
PL/SQL is auto-converted to PL/pgSQL (via Database Migration Assessment), along with data-type mappings, sequences, triggers, and views. Not 100% automatic, but dramatically less manual work.
How does it relate to Datastream?
Datastream streams CDC (Change Data Capture) into BigQuery / GCS / Spanner. DMS handles full migration. Use Datastream for real-time analytics and DMS for migrations.
How does it compare with AWS DMS?
Both are managed DB migration services. GCP DMS supports AlloyDB and has strong PostgreSQL compatibility; AWS DMS covers more source databases. In multi-cloud setups, you may use both.
How does rollback work on failure?
During Continuous Migration the source DB is still live, so rollback is simply 'cancel the cutover.' Rolling back after cutover requires preserving the source DB state.
Related articles: Migration / DB
Professional Cloud Database Engineer (PCDBE): Guide (2026)
Pass the PCDBE exam — Cloud SQL, Spanner, AlloyDB, Bigtable, migration. The database Professional cert.
Cloud SQL vs AlloyDB: Choose the Right Managed Postgres (2026)
Cloud SQL vs. AlloyDB — features, performance, cost. The Postgres-on-GCP decision framework.
GCP vs AWS Storage & DB Comparison (2026)
Cloud Storage vs. S3, BigQuery vs. Redshift, Spanner vs. Aurora. Honest feature-by-feature comparison.
Sensitive Data Protection (Cloud DLP) Guide (2026)
Cloud DLP fundamentals — info types, inspection, de-identification, common compliance patterns.
Google Cloud is a trademark of Google LLC. For the latest details, see the official DMS documentation.
Practice with certification-focused question sets
Visit the GCP exam prep pageNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
Google Cloud Certification Roadmap (2026)
Choose your GCP certification path — Foundational, Associate...
CDL Cloud Digital Leader: Complete Exam Guide (2026)
Pass the Cloud Digital Leader exam — cloud business value, G...
GAIL Generative AI Leader: Complete Exam Guide (2026)
Pass the Generative AI Leader exam — Gemini, Vertex AI, Work...
Vertex AI Fundamentals for GCP Certs (2026)
Vertex AI basics every cert candidate needs — Workbench, Pip...
Associate Cloud Engineer (ACE): Complete Guide (2026)
Pass the Associate Cloud Engineer exam — Console, gcloud, pr...