Google Cloud Platform

Migrate SQL Server to GCP

Written by
Javier Martin Lopez
June 1, 2026

The Architect's Guide: How to Migrate SQL Server to GCP

When planning to migrate SQL Server to Google Cloud, specifically to Cloud SQL for SQL Server, IT leaders and data architects must strategically select the correct migration path. Options range from native Google Cloud tools like the Database Migration Service (DMS) to native SQL Server replication technologies.

This guide provides an expert overview of planning, choosing, and executing your move from SQL Server to GCP.

1. Evaluating Your Application and Database Requirements

Before you migrate SQL Server to GCP, you must assess your application constraints and database characteristics to determine the right balance between process complexity and availability.

  • Downtime Tolerance: Determine if your application operates 24/7 or if it has scheduled maintenance windows. High uptime requirements typically dictate a continuous migration approach, whereas high downtime tolerance allows for simpler one-time migrations.
  • Database Size: Transferring large databases introduces challenges, such as extended resource utilization on your source servers or network transfer bottlenecks. For instance, databases over 5TB generally require striped backups due to file size limitations.
  • Daily Transaction Volume: If your database undergoes massive daily updates, a continuous online migration might be necessary to keep the destination synchronized. However, if updates are clustered (e.g., wipe-and-load batch jobs), scheduling a one-time migration during an off-peak hour may be more efficient.

2. Choosing a Migration Approach

Migration strategies broadly fall into two categories: One-time migrations and Continuous migrations.

One-Time Migration Strategies

In a one-time migration, a static copy of the source database is moved to the target, and the application is subsequently cut over.

  • Backup and Restore: This is the simplest approach and scales well to any database size. It is universally recommended as the primary choice if your downtime constraints allow.
  • Bulk Copy Program (BCP): BCP tools can extract table data into files that are then imported into Cloud SQL. This requires you to manually generate and apply the database schema first.
  • Snapshot Replication: This approach allows granular migration of specific objects and sends a full copy of each published database object. However, it places additional CPU, IO, and storage load on the source server and places a lock on source tables until the snapshot completes, which can be problematic for large databases.

Continuous Migration Strategies

When workloads cannot be paused, continuous migration synchronizes the target database in the background before the final application cut-over.

  • Database Migration Service (DMS): The recommended GCP-native route for homogeneous migrations.
  • Push Transactional Replication: Keeps source and target instances in sync by capturing incremental changes.
  • Note on Unsupported Features: Cloud SQL for SQL Server does not support native log shipping or database mirroring, so these cannot be used as migration strategies.

3. Using Google Cloud Database Migration Service (DMS)

DMS is offered at no additional charge for homogeneous migrations (migrating between the same SQL Server versions, or upgrading to a supported later version).

💡Cost Optimization Tip: While the DMS tool itself is free, standard compute and storage billing still applies to your target database. For the most up-to-date tiers and to calculate your specific pricing, always refer to the official Google Cloud SQL pricing documentation.

Continuous Migration Data Flow using DMS:

  1. Initial Full Backup: You begin by uploading a full database backup file to a dedicated Cloud Storage bucket. DMS loads this latest full backup to the destination Cloud SQL instance.
  2. Differential Backup (Optional): If configured, DMS will scan a specific diff folder in the storage bucket for a differential backup file and apply it.
  3. Transaction Logs: DMS continuously scans the storage bucket for uploaded transaction log files, reading them and replicating new data to the destination instance. For Cloud SQL source instances, DMS automatically handles these exports.

Prerequisites and Security:

You must assign specific IAM roles to both the user account performing the migration and the DMS service account. Crucial roles include Database Migration Admin, Storage Admin, and Cloud SQL Editor. For security, DMS fully supports encrypted SQL Server backups; you can provide your encryption key to Google Cloud to safely decrypt and load data.

Finalizing a DMS Migration:

Once you are ready to switch your application over:

  1. Stop all write operations on your source database to prevent data loss.
  2. Take one final transaction log backup and upload it to the bucket. You can optionally append a .trn.final suffix to this file. When DMS detects this suffix, it finishes processing the file and changes the job status to Ready to promote.
  3. Promote the migration job, which gives you full write access to the fully operational destination database, and repoint your application.

4. Advanced: Push Transactional Replication

If DMS does not fit your specific topology for bringing SQL Server to GCP, you can use Push Transactional Replication. This method requires tables to have primary keys.

The Process:

  • Initial Seed: Establish the baseline data in Cloud SQL. This can be done via a custom-prepared backup file (recommended for 1TB+ databases), a Snapshot Agent (for moderately sized databases), or manual initialization.
  • Incremental Updates: A Log Reader Agent running on a Distributor gathers data modification statements from the source and stores them in a distribution database. A Distribution Agent then applies these commands to the Cloud SQL target.
  • Final Schema Synchronization: Because transactional replication only moves data, the final cut-over requires manual schema adjustments on Cloud SQL, such as enabling triggers, synchronizing logins, and updating identity ranges.

5. Summary Best Practices

  • Validate via Test Runs: For complex continuous migrations, always run a test migration to validate schema compatibility and fine-tune replication settings.
  • Prepare "Pull-Up" Scripts: Have scripts ready for the final cut-over to fix any inconsistencies like missing users or disabled triggers that may not have migrated dynamically.
  • Leverage BCP for Extracts:  If you already use ETL jobs, BCP import remains a viable option for moving table data—though it's typically slower than backup-and-restore for large tables, so it's best reserved for workflows already built around it.

Ready to Accelerate Your Migration?

Migrating your SQL Server to GCP doesn't have to be a solo journey. Whether you need a comprehensive migration strategy, specialized architectural support, or assistance navigating cloud sql pricing, Cloudasta is your certified Google Cloud Partner. Contact us today to get a custom quote and expert help for your GCP migration.

Cloudasta, Google Workspace Productivity & Migration Experts

Your one-stop partner for seamless migrations, expert advisory, support, and training.