Database Migration Service uses migration jobs to migrate data from your source databases to the Cloud SQL destination instance. Migration jobs help you organize the source and destination connection profiles, define settings specific to the migration process, monitor the progress, and safely finalize the whole operation.
Creating a migration job includes performing the following tasks:
Selecting source and destination connection profiles.
Selecting the conversion workspace and specifying objects you want to migrate.
Performing a migration job test to ensure that Database Migration Service is able to connect to your data source and destination.
Starting the migration job, and monitoring the progress.
Promoting the migration job when you want to switch your application to the new instance.
Before you begin
- Ensure you meet the following requirements:
- Your configured your source database for migration.
- You configured source network connectivity.
- You have the source connection profile for your database.
- You created and configured your destination Cloud SQL instance.
- You configured destination network connectivity.
- You have the destination connection profile for the Cloud SQL instance.
- You converted your source SQL Server schema with a Database Migration Service conversion workspace.
- Optional: If you want to manage your own certificates for the migration job, you prepared the necessary encryption keys.
- In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
- Enable the Database Migration Service and Cloud SQL Admin APIs.
Required roles
To get the permissions that you need to create a migration job for heterogeneous SQL Server migrations, ask your administrator to grant the required IAM roles on your project for the following accounts involved in the migration process:
- User account that performs the migration:
-
Database Migration Admin (
roles/datamigration.admin
) -
Cloud SQL Editor (
roles/cloudsql.editor
)
-
Database Migration Admin (
- Database Migration Service service account:
-
Database Migration Admin (
roles/datamigration.admin
) -
Cloud SQL Editor (
roles/cloudsql.editor
)
-
Database Migration Admin (
For more information about granting roles, see Manage access in the Identity and Access Management documentation.
These predefined roles contain the permissions required to perform heterogeneous SQL Server migrations with Database Migration Service. To see the exact permissions that are required, expand the Required permissions section:
Required permissions
The following permissions are required to perform heterogeneous SQL Server migrations with Database Migration Service:
datamigration.*
resourcemanager.projects.get
resourcemanager.projects.list
cloudsql.instances.create
cloudsql.instances.get
cloudsql.instances.list
cloudsql.databases.get
cloudsql.databases.delete
cloudsql.operations.get
compute.machineTypes.list
compute.machineTypes.get
compute.projects.get
You might also be able to get these permissions with custom roles or other predefined roles.
Define settings and create a migration job
To create a migration job, perform the following steps:
- In the Google Cloud console, go to the Migration jobs page.
- Click Create migration job.
The migration job configuration wizard page opens. This wizard contains multiple panels that walk you through each configuration step.
You can pause the creation of a migration job at any point by clicking SAVE & EXIT. All of the data that you enter up to that point is saved in a draft migration job. You can finish your draft migration job later. See Update a draft migration job.
- On the Get started page, enter the following information:
- Migration job name: a human-readable name for your migration job. This value is displayed in the Google Cloud console.
- Migration job ID: a machine-readable identifier for your migration job. You use this value to work with migration jobs by using Database Migration Service Google Cloud CLI commands or API.
- From the Source database engine list, select your SQL Server source database.
- From the Destination database engine drop-down menu, select Cloud SQL for PostgreSQL.
- Optional: If you want to manage your own data encryption key for the migration,
expand the Advanced encryption options and do the following:
- Select the Cloud KMS key option.
- Leave the default Cloud KMS option for the Key type setting.
Database Migration Service doesn't support the Cloud KMS with autokey feature.
- From the Select a customer-managed key drop-down menu, select your encryption key. You can also manually enter the fully qualified identifier for your key.
- Click Save and continue.
- On the Define your source page, perform the following actions:
- From the Source connection profile drop-down menu, select your source connection profile.
-
In this section, you can choose how to perform the full dump phase of your migration The default value is Automatic. For more information on available settings, expand the Full dump settings section:
Full dump settings
You can use the following settings for making the full dump:
- Automatic
When the migration is started, Database Migration Service pulls existing data in addition to newly changed data from the included objects. This is the default option.
- Customer-managed
When the migration is started, Database Migration Service pulls only newly changed data from the included tables.
Choose this option if you want to perform the full dump on your own.
In the CDC start position (LSN) field, provide a SQL Server LSN (Log Sequence Number) to start the CDC from.
- Automatic
-
In the Source read settings section, configure how many concurrent connections Database Migration Service can make to your source instance. For more information on available settings, expand the Source read settings section:
Source read settings
Database Migration Service adjusts the number of connections to ensure the best performance within provided connection limits. Increasing the maximum connection limit can improve the migration speed, but introduces additional load on your source databases.
You can use the following settings:
-
Maximum concurrent full dump connections defines the maximum number of concurrent full dump connections. The actual number of concurrent connections might be lower at any particular time.
Default:
50
connectionsCustom: minimum
1
, maximum50
connections - Maximum concurrent CDC connections
Default:
5
connectionsCustom: minimum
1
, maximum50
connections
-
- Click Save and continue.
- On the Define a destination page, from the Destination connection profile drop-down menu, select your destination connection profile.
- In the Customize destination configuration section, configure the following
settings:
- Maximum concurrent destination connections
-
Default value:
128
Allowed values: minimum
2
, maximum256
You can customize how many maximum concurrent connections Database Migration Service can make to your destination instance.
Database Migration Service adjusts the number of connections to ensure the best performance within provided connection limit. Increasing the maximum connection limit can improve the migration speed, but introduces additional load on your destination databases.
- Transaction timeout
-
Default value:
30
Allowed values: minimum
30
, maximum300
During the migration process, Database Migration Service can encounter certain issues that cause the transaction to time out. You can adjust the number of seconds that Database Migration Service waits for the transaction to complete before it is canceled.
Canceled transactions don't cause your migration job to fail. The migration job continues to copy data, but moves to the Running with errors status. You can view migration job details to check what issues need to be addressed.
- Click Save and continue.
- On the Configure migration objects page, perform the following actions:
- From the Conversion workspace drop-down menu, select your conversion workspace.
- In the Select objects to migrate section, use the checkboxes to select which objects you want to include in this migration job. This list is populated based on what objects you converted to PostgreSQL schema in the conversion workspace.
- Click Save and continue.
- On the Test and create migration job, perform the following
actions:
- (Optional) Click Test job to verify if Database Migration Service
can successfully identify all the backup files and establish
the necessary network connections.
If the test fails, you can consult the error messages to address the problem, and run the test again. For more information on possible errors, see Diagnose issues.
- Click Create and start job to begin your migration.
If you want to perform the migration job at a different time, click Save and return later to run the job. See Start a migration job.
- (Optional) Click Test job to verify if Database Migration Service
can successfully identify all the backup files and establish
the necessary network connections.