Stay organized with collections
Save and categorize content based on your preferences.
You can migrate SQL Server databases to Cloud SQL for SQL Server
instances with Database Migration Service by using a backup and restore flow.
You first upload the full database backup and transaction
log files to a Cloud Storage bucket. Database Migration Service then actively
monitors your bucket, and continuously replicates your data to the destination
Cloud SQL for SQL Server instance.
This page provides an overview of the key Database Migration Service
features for homogeneous SQL Server migrations:
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.
Encryption looks at how you can migrate
with encrypted SQL Server backup files.
Supported source and destination databases
You can use Database Migration Service to migrate between the same SQL Server
version and edition, or from earlier versions of
SQL Server to later versions supported in Cloud SQL, as long
as you follow the version compatibility guidelines. For more information,
see the supported version and edition upgrades for your SQL Server
version in Microsoft documentation. For example, see
Supported version and edition upgrades (SQL Server 2022).
The following table lists all supported SQL Server source and destination
databases:
Source databases
Destination databases
Amazon RDS
Cloud SQL for SQL Server versions 2022, 2019, 2017
Self-managed SQL Server
(on premises or on any cloud VM that you fully control)
Continuous migrations data flow
For homogeneous SQL Server migrations to Cloud SQL,
Database Migration Service supports the
continuous migration flow. In this approach, your data is first
loaded from a full database backup file, then from a differential backup file,
and then continuously updated based on transaction log files you upload to
a dedicated Cloud Storage bucket.
Figure 1. Data movement during Database Migration Service for
SQL Server migrations. (click to enlarge)
At a high level, your data moves through the migration phases as follows:
You upload your backup files to Cloud Storage.
Continuous SQL Server migrations require that you first take a
full backup of your source database, and then upload the backup file to
a Cloud Storage bucket.
For subsequent updates, you can optionally provide a differential backup file,
and then upload transaction log files.
You can also automate continuous transaction log creation and uploads.
For details on how Database Migration Service uses different types of backup files
in homogeneous SQL Server migrations, see
Supported backup file types.
When the migration job starts, Database Migration Service loads the latest full
database backup to the destination Cloud SQL for SQL Server instance.
Once the initial load is complete, Database Migration Service switches to the incremental
load phase. At this point, Database Migration Service performs the following:
If your migration job is configured to use a differential backup file,
Database Migration Service scans the diff folder and loads differential backup
files to your destination instance. If your migration job is configured
to use a differential backup file, but Database Migration Service can't find it
in the Cloud Storage bucket, the migration job shows an error
while continuously searching the diff folder for the differential
backup file.
Database Migration Service loads differential backup files only once, at the beginning
of the incremental load phase. When the migration job proceeds to work with
transaction log files no new differential backup files are recognized when
you upload them to the diff folder.
Now Database Migration Service continuously scans your Cloud Storage bucket
for transaction log backup files to replicate on your destination instance.
As new data shows up in your source database, you can keep exporting
the transaction log backup files and uploading them to the same Cloud Storage
bucket. Database Migration Service picks up all new transaction log backup files and
replicates them on the destination database.
You can stop the ongoing replication and promote the migration job when you want
to switch your application to so that it uses the Cloud SQL for SQL Server
destination instance as the production database. For a detailed step-by-step
migration guide, see
Cloud SQL for SQL Server migration guide.
Monitoring
Figure 2. Sample observability diagram in Database Migration Service.
(click to enlarge)
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 transaction log backup file processing,
as well as detailed logs for Cloud SQL for SQL Server destination instance health
and migration job state.
Database Migration Service is fully compatible with
encrypted SQL Server backups. If you upload your
encryption key to Google Cloud, Database Migration Service can safely decrypt
your data and load it to the Cloud SQL for SQL Server destination instance without
compromising your data security.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eDatabase Migration Service allows the migration of SQL Server databases to Cloud SQL for SQL Server using a backup and restore method, where full database backups and transaction logs are uploaded to Cloud Storage.\u003c/p\u003e\n"],["\u003cp\u003eThe service supports various source databases, including Amazon RDS and self-managed SQL Servers, and can migrate between different SQL Server versions as long as version compatibility guidelines are met.\u003c/p\u003e\n"],["\u003cp\u003eData migration occurs in a continuous flow, starting with a full backup, followed by an optional differential backup, and then ongoing updates from transaction log files uploaded to a designated Cloud Storage bucket.\u003c/p\u003e\n"],["\u003cp\u003eDatabase Migration Service offers monitoring capabilities, including real-time diagnostics and detailed logs, to track the progress and health of the migration process.\u003c/p\u003e\n"],["\u003cp\u003eThe migration service can handle encrypted SQL Server backups, ensuring data security by decrypting the files using an uploaded encryption key during the migration process.\u003c/p\u003e\n"]]],[],null,["# Database Migration Service for SQL Server\n\nYou can migrate SQL Server databases to Cloud SQL for SQL Server\ninstances with Database Migration Service by using a backup and restore flow.\nYou first upload the full database backup and transaction\nlog files to a Cloud Storage bucket. Database Migration Service then actively\nmonitors your bucket, and continuously replicates your data to the destination\nCloud SQL for SQL Server instance.\n\nThis page provides an overview of the key Database Migration Service\nfeatures for homogeneous SQL Server migrations:\n\n- [Supported source and destination](#supported-src-and-dest) lists all SQL Server\n versions supported by Database Migration Service.\n\n- [Continuous migrations data flow](#data-flow-migration-types) provides an end-to-end overview\n of how your data moves in Google Cloud during the migration process.\n\n- [Monitoring](#monitoring)\n gives an introduction for logs and metrics that can\n help you observe the progress and health of your migration job.\n\n- [Encryption](#securing-migration-jobs) looks at how you can migrate\n with encrypted SQL Server backup files.\n\nSupported source and destination databases\n------------------------------------------\n\nYou can use Database Migration Service to migrate between the same SQL Server\nversion and edition, or from earlier versions of\nSQL Server to later versions supported in Cloud SQL, as long\nas you follow the version compatibility guidelines. For more information,\nsee the supported version and edition upgrades for your SQL Server\nversion in Microsoft documentation. For example, see\n[Supported version and edition upgrades (SQL Server 2022)](https://learn.microsoft.com/en-us/sql/database-engine/install-windows/supported-version-and-edition-upgrades-2022?view=sql-server-ver16#upgrades-from-earlier-versions-to-sql-server-2022).\n\nThe following table lists all supported SQL Server source and destination\ndatabases:\n\nContinuous migrations data flow\n-------------------------------\n\nFor homogeneous SQL Server migrations to Cloud SQL,\nDatabase Migration Service supports the\n[continuous migration](/database-migration/docs/overview#migrationconcepts) flow. In this approach, your data is first\nloaded from a full database backup file, then from a differential backup file,\nand then continuously updated based on transaction log files you upload to\na dedicated Cloud Storage bucket.\n[](#lightbox-trigger) **Figure 1.** Data movement during Database Migration Service for SQL Server migrations. (click to enlarge)\n\nAt a high level, your data moves through the migration phases as follows:\n\n1. You upload your backup files to Cloud Storage.\n\n Continuous SQL Server migrations require that you first take a\n full backup of your source database, and then upload the backup file to\n a Cloud Storage bucket.\n For subsequent updates, you can optionally provide a differential backup file,\n and then upload transaction log files.\n You can also automate continuous transaction log creation and uploads.\n - For more information on automating continuous transaction log creation and\n uploads, see\n [Schedule transaction log backups](/database-migration/docs/sqlserver/automate-backup-exports).\n\n - For details on how Database Migration Service uses different types of backup files\n in homogeneous SQL Server migrations, see\n [Supported backup file types](/database-migration/docs/sqlserver/supported-backup-files).\n\n2. When the migration job starts, Database Migration Service loads the latest full\n database backup to the destination Cloud SQL for SQL Server instance.\n\n3. Once the initial load is complete, Database Migration Service switches to the incremental\n load phase. At this point, Database Migration Service performs the following:\n\n 1. If your migration job is configured to use a differential backup file,\n Database Migration Service scans the `diff` folder and loads differential backup\n files to your destination instance. If your migration job is configured\n to use a differential backup file, but Database Migration Service can't find it\n in the Cloud Storage bucket, the migration job shows an error\n while continuously searching the `diff` folder for the differential\n backup file.\n\n Database Migration Service loads differential backup files only once, at the beginning\n of the incremental load phase. When the migration job proceeds to work with\n transaction log files no new differential backup files are recognized when\n you upload them to the `diff` folder.\n 2. Now Database Migration Service continuously scans your Cloud Storage bucket\n for transaction log backup files to replicate on your destination instance.\n\n4. As new data shows up in your source database, you can keep exporting\n the transaction log backup files and uploading them to the same Cloud Storage\n bucket. Database Migration Service picks up all new transaction log backup files and\n replicates them on the destination database.\n\nYou can stop the ongoing replication and promote the migration job when you want\nto switch your application to so that it uses the Cloud SQL for SQL Server\ndestination instance as the production database. For a detailed step-by-step\nmigration guide, see\n[Cloud SQL for SQL Server migration guide](/database-migration/docs/sqlserver/guide).\n\nMonitoring\n----------\n\n[](#lightbox-trigger) **Figure 2.** Sample observability diagram in Database Migration Service. (click to enlarge)\n\nDatabase Migration Service provides extensive logging and observability capabilities\nto help you monitor the migration progress. These features include real-time\ndiagnostics for replication delay and transaction log backup file processing,\nas well as detailed logs for Cloud SQL for SQL Server destination instance health\nand migration job state.\n\nFor more details, see\n[Migration job metrics](/database-migration/docs/sqlserver/migration-job-metrics).\n\nEncryption\n----------\n\nDatabase Migration Service is fully compatible with\n[encrypted SQL Server backups](https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-encryption). If you upload your\nencryption key to Google Cloud, Database Migration Service can safely decrypt\nyour data and load it to the Cloud SQL for SQL Server destination instance without\ncompromising your data security.\n\nFor more details, see\n[Encrypted SQL Server backup files](/database-migration/docs/sqlserver/backup-file-encryption).\n\nWhat's next\n-----------\n\n- To learn more about SQL Server data and feature support in\n Database Migration Service, see\n [Known limitations](/database-migration/docs/sqlserver/known-limitations).\n\n- To get a complete, step-by-step migration walkthrough, see\n [Cloud SQL for SQL Server migration guide](/database-migration/docs/sqlserver/guide)."]]