How to Migrating Azure SQL to GCP Cloud SQL for MS SQL

Biswanath Giri
4 min readJun 1, 2023

--

Choose a migration method. There are two main ways to migrate Azure SQL to Cloud SQL:

  • Use the Azure Database Migration Service (DMS). DMS is a fully managed service that can automate the migration of data from on-premises or cloud data sources to Cloud SQL.
  • Use a third-party migration tool. There are a number of third-party tools that can be used to migrate Azure SQL to Cloud SQL.
  1. Prepare your Azure SQL database. Before you can migrate your Azure SQL database, you need to prepare it by:
  • Backing up your database. It is always a good idea to back up your data before you migrate it.
  • Defragmenting your database. Defragmenting your database can improve the performance of the migration.
  • Disabling triggers. Triggers can interfere with the migration process, so you should disable them before you start the migration.

Create a Cloud SQL instance. Once you have prepared your Azure SQL database, you need to create a Cloud SQL instance.

Start the migration. Once you have created a Cloud SQL instance, you can start the migration.

  • **If you are using DMS, you can use the DMS console or the DMS API to start the migration.
  • **If you are using a third-party migration tool, you can follow the instructions provided by the tool to start the migration.

Monitor the migration. Once the migration has started, you can monitor its progress in the DMS console or the DMS API.

Test the migrated database. Once the migration is complete, you should test the migrated database to make sure that it is working properly.

Here are some additional tips for migrating Azure SQL to Cloud SQL:

  • Use a staging environment. If you have a staging environment, you can use it to test the migration before you migrate your production database.
  • Migrate in stages. If you have a large database, you may want to migrate it in stages. This will help to reduce the risk of any problems during the migration.
  • Use a migration tool that supports point-in-time recovery. If something goes wrong during the migration, you may need to restore your database to a previous point-in-time. A migration tool that supports point-in-time recovery will make this process easier.

Assess and plan:

  • Understand your existing Azure SQL environment, including the size, configuration, and dependencies of your databases.
  • Analyze the compatibility of your Azure SQL databases with Cloud SQL for MS SQL. Ensure that your database features and functionality are supported in the target environment.
  • Identify any potential challenges or limitations that may arise during the migration process.
  • Plan your migration strategy, including the timeline, resources required, and any necessary downtime.

Provision a Cloud SQL instance:

  • Set up a Cloud SQL instance for MS SQL on Google Cloud Platform (GCP). Configure the instance according to your requirements, such as the machine type, storage capacity, and network settings.

Prepare the source database:

  • Perform a pre-migration assessment of your Azure SQL databases. This includes reviewing the database schema, objects, and dependencies.
  • Ensure that your Azure SQL databases are in a consistent state before initiating the migration. Perform any necessary backups and ensure there are no ongoing transactions that could impact the migration.

Data migration:

  • Choose an appropriate method to migrate your data from Azure SQL to Cloud SQL for MS SQL. Some options include:
  • Using the Cloud SQL migration service: Google Cloud provides a database migration service that can help simplify the migration process. It supports online (near-zero downtime) or offline (minimal downtime) migrations.
  • Export/import: Export your Azure SQL database to a backup file or BACPAC file and import it into Cloud SQL for MS SQL.
  • Replication: Set up replication between your Azure SQL database and Cloud SQL for MS SQL, allowing data to be synchronized in real-time.

Application migration:

  • Update your application configurations to point to the new Cloud SQL for MS SQL instance.
  • Test the connectivity and functionality of your applications against the migrated databases.
  • Address any compatibility issues that arise during the migration. This may involve modifying SQL queries, stored procedures, or application code.

Post-migration validation:

  • Perform thorough testing to ensure that all data has been migrated correctly and that the applications are functioning as expected.
  • Validate the performance and scalability of your migrated databases in the Cloud SQL environment.
  • Monitor the system closely after the migration to identify and resolve any issues that may arise.

Decommission Azure SQL:

  • Once you have confirmed the successful migration and verified that all applications are running smoothly on Cloud SQL for MS SQL, you can decommission your Azure SQL resources.

It’s important to note that the exact steps and considerations may vary depending on the specifics of your Azure SQL deployment and the migration approach you choose. It’s recommended to consult the official documentation and best practices provided by Google Cloud for detailed instructions on migrating from Azure SQL to Cloud SQL for MS SQL.

-- Create a new Cloud SQL instance
CREATE CLOUD SQL INSTANCE
(
INSTANCE_NAME = 'my-instance',
DATABASE_VERSION = '12',
REGION = 'us-central1',
ZONE = 'us-central1-a'
);

-- Create a new database on the Cloud SQL instance
CREATE DATABASE [database_name] ON
(
NAME = [database_name],
FILENAME = '/path/to/database.mdf',
SIZE = 10GB
);

-- Restore the database from Azure SQL
RESTORE DATABASE [database_name]
FROM DISK = '/path/to/database.bak'
WITH REPLACE,
MOVE 'database_name' TO '/path/to/database.mdf',
MOVE 'log' TO '/path/to/database.ldf';

-- Change the database owner to your Google Cloud user
ALTER AUTHORIZATION ON DATABASE::[database_name] TO [your_google_cloud_user];

-- Grant permissions to your Google Cloud user
GRANT SELECT, INSERT, UPDATE, DELETE ON DATABASE::[database_name] TO [your_google_cloud_user];

--

--

Biswanath Giri

Cloud & AI Architect | Empowering People in Cloud Computing, Google Cloud AI/ML, and Google Workspace | Enabling Businesses on Their Cloud Journey