Create a migration job

Overview

Database Migration Service uses migration jobs to migrate data from your source database instance to the destination Cloud SQL database instance.

Creating a migration job includes:

  • Defining settings for the migration job
  • Specifying information about the connection profile that you created for your source database (source connection profile)
  • Defining settings for the destination Cloud SQL database instance and creating the instance
  • Setting up connectivity between the source and destination database instances
  • Testing the migration job to ensure that the connection information you provided for the job is valid

Define settings for the migration job

  1. Go to the Migration jobs page in the Google Cloud Console.
  2. Click CREATE MIGRATION JOB at the top of the page.
  3. Provide a name for the migration job. Choose a friendly name that helps you identify the migration job. Do not include sensitive or personally identifiable information in the job name.
  4. Keep the auto-generated Migration job ID.
  5. Select the source database engine.

    The destination database engine is selected automatically and can't be modified because Database Migration Service supports only homogeneous migration jobs at this time.

  6. Select the destination region for your migration. This is where the Database Migration Service instance is created, and should be selected based on the location of the services that need your data, such as Compute Engine instances and App Engine apps, and other services. Once chosen, this selection can't be changed.
  7. Specify the migration job type: One-time (snapshot only) or Continuous (snapshot + ongoing changes).
  8. Review the required prerequisites that are generated automatically to reflect how the environment must be prepared for a migration job. These prerequisites can include how to configure the source database and how to connect it to the destination Cloud SQL database instance. It's best to complete these prerequisites at this step, but you can complete them at any time before you test the migration job or start it. For more information about these prerequisites, see Configure your source.
  9. Click SAVE & CONTINUE.

Specify information about the source connection profile

  1. If you have created a connection profile, then select it from the list of existing connection profiles.

    If you haven't created a connection profile, then create one by clicking CREATE A CONNECTION PROFILE at the bottom of the dropdown list, and then perform the same steps as in Create a connection profile.

  2. Click SAVE & CONTINUE.

Define and create the destination Cloud SQL instance

  1. Provide an ID for the Cloud SQL instance or use the auto-generated ID. Don't include sensitive or personally identifiable information in the ID; it's externally visible. There's no need to include the project ID in the instance name. This is done automatically where appropriate (for example, in the log files).
  2. Provide an alphanumeric Root password for the destination Cloud SQL instance. This will be the password for the root administrator account in the instance.

    You can either enter the password manually or click GENERATE to have Database Migration Service for PostgreSQL create one for you automatically.

  3. Choose the database version for the destination instance from the list of supported Database Migration Service versions for the specified database engine. Learn more about cross-version migration support.
  4. The instance is created in the region that you selected when you defined settings for the migration job. Select a zone within that region or leave the zone set to Any for Google to select one automatically. The zone can be changed at any time.
  5. Choose whether to connect to this instance via private or public IP address.
    1. If you're planning to connect via VPC-peering or Reverse SSH tunnel, then select the Private IP checkbox.
      1. Make sure the following is true to enable private IP:
      2. Select the associated VPC network to peer. If you plan on connecting to the migration source via VPC peering, then choose the VPC where the instance resides.
      3. If a managed service network was never configured for the selected VPC, you can choose to either select an IP range and click Connect or use an automatically selected IP range and click Allocate & Connect.
    2. If you're planning to connect via IP allowlisting, then select the Public IP checkbox.
      1. Optionally, click the Authorized networks field, and either authorize a network or a proxy to connect to the Cloud SQL instance. Networks will only be authorized via the addresses that you provide. Learn more about configuring public access to the instance.

  6. Select the machine type for the Cloud SQL instance. The disk size must be equal to or greater than the source database size.

    Learn more about PostgreSQL machine types.

  7. Specify the storage type for the Cloud SQL instance. You can choose either a solid-state drive (SSD) or a hard disk drive (HDD).
  8. Specify the storage capacity (in GBytes) for the Cloud SQL instance.

  9. Optionally, click SHOW ADDITIONAL SETTINGS, and then:
    1. Add any necessary flags that will be applied to the database server. If possible, make sure that the database flags on the created destination Cloud SQL instance are the same as those on the source database. Learn more about supported database flags for PostgreSQL.
    2. Add any labels that are specific to the Cloud SQL instance.

      Labels help organize your instances. For example, you can organize labels by cost center or environment. Labels are also included in your bill so you can see the distribution of costs across your labels.

    3. Click CREATE & CONTINUE.

  10. In the Create destination database window, click CREATE DESTINATION & CONTINUE to create the new instance. This may take up to several minutes.

  11. Wait for the creation of the destination instance to finish.

Set up connectivity between the source and destination database instances

  1. From the Connectivity method drop-down menu, select a network connectivity method. This method defines how the newly created Cloud SQL instance will connect to the source database. Current network connectivity methods include IP allowlist, reverse SSH tunnel, and VPC peering.
    • If you select the reverse SSH tunnel network connectivity method, then select the Compute Engine VM instance that will host the tunnel. After specifying the instance, Google will provide a script that performs the steps to set up the tunnel between the source and destination databases. You'll need to run the script in the gcloud command-line tool. Run the commands from a machine that has connectivity to both the source database and to Google Cloud.
    • If you select the VPC peering network connectivity method, then select the VPC network where the source database resides. The Cloud SQL instance will be updated to connect to this network.
    • Learn more about how to Configure connectivity.
  2. After selecting the network connectivity method and providing any additional information for the method, click CONFIGURE & CONTINUE.

Test and create the migration job

On this final step, review the summary of the migration job settings, source, destination, and connectivity method, and then test the validity of the migration job setup. If any issues are encountered, then you can modify settings. Not all settings are editable.

  1. Click TEST JOB to verify that:

    • The source has been configured based on the prerequisites.

    • The source and destination instances are able to communicate with each other.

    • Any updates to private or public IP addresses needed on the destination are done.

    • The migration job is valid, and the source and destination versions are compatible.

    If the test fails, then you can address the problem in the appropriate part of the flow, and return to re-test.

    The migration job can be created even if the test fails, but after the job is started, it may fail at some point during the run.

  2. Click CREATE & START JOB to create the migration job and start it immediately, or click CREATE JOB to create the migration job without immediately starting it.

    If the job isn't started at create time, then it can be started from the migration job page by clicking START.

    Regardless of when the migration job starts, your organization is charged for the existence of the destination instance.

  3. The migration job is added to the migration jobs list and can be viewed directly.