为 Cloud SQL for SQL Server 源创建迁移作业

本页面介绍如何使用 Google Cloud CLI 为 Cloud SQL for SQL Server 源创建迁移作业。如需详细了解如何使用 Database Migration Service 在 Cloud SQL for SQL Server 实例之间迁移,请参阅 Cloud SQL for SQL Server 源的迁移指南

准备工作

  1. 确保您满足以下要求:
    • 您有一个 Cloud Storage 存储桶,用于存放 SQL Server 备份文件。
    • 您已为源实例创建了源连接配置文件。
    • 您已创建并配置 Cloud SQL for SQL Server 目标实例,并且已为该实例创建目标连接配置文件。
  2. 在 Google Cloud 控制台的项目选择器页面上,选择或 创建 Google Cloud 项目

    转到“项目选择器”

  3. 启用 Database Migration Service、Compute Engine、Cloud Storage 和 Cloud SQL Admin API。

    启用 API

所需的角色

如需获得在 Database Migration Service 中创建迁移作业所需的权限,请让管理员向您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅 管理访问权限

这些预定义角色包含使用 Database Migration Service 执行同构 SQL Server 迁移所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

使用 Database Migration Service 执行同构 SQL Server 迁移需要以下权限:

  • 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
  • storage.buckets.create
  • storage.buckets.list
  • storage.objects.list

您也可以使用 自定义角色或其他 预定义角色来获取这些权限。

定义设置并创建迁移作业

gcloud

此示例使用可选的 --no-async 标志,以便所有操作都同步执行。这意味着某些命令可能需要一段时间才能完成。您可以跳过 --no-async 标志,以异步运行命令。 如果执行了此操作,您需要使用 gcloud database-migration operations describe 命令来验证操作是否成功。

在使用下面的命令数据之前,请先进行以下替换:

  • MIGRATION_JOB_ID 替换为迁移作业的机器可读标识符。您可以使用此值,通过 Database Migration Service Google Cloud CLI 命令或 API 来处理迁移作业。
  • REGION 替换为您要保存迁移作业的区域标识符。
  • MIGRATION_JOB_NAME 替换为迁移作业的直观易懂的名称。此值会显示在 Google Cloud 控制台中的 Database Migration Service 中。
  • SOURCE_CONNECTION_PROFILE_ID,其中包含来源连接配置文件的机器可读标识符。
  • DESTINATION_CONNECTION_PROFILE_ID,其中包含目标连接配置文件的机器可读标识符。
  • DESTINATION_PROJECT_ID 替换为包含目标 Cloud SQL for SQL Server 实例的 Google Cloud 项目标识符。 此项目必须与您启用 Database Migration Service API 并创建迁移作业的项目相同。
  • COMMA_SEPARATED_DATABASE_ID_LIST,其中包含 SQL Server 的数据库标识符(以英文逗号分隔),您要从备份文件迁移这些数据库。

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
create MIGRATION_JOB_ID \
  --no-async \
  --region=REGION \
  --display-name=MIGRATION_JOB_NAME \
  --source=SOURCE_CONNECTION_PROFILE_ID \
  --destination=DESTINATION_CONNECTION_PROFILE_ID \
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST \
  --project=DESTINATION_PROJECT_ID \
  --type=CONTINUOUS

Windows (PowerShell)

gcloud database-migration migration-jobs `
create MIGRATION_JOB_ID `
  --no-async `
  --region=REGION `
  --display-name=MIGRATION_JOB_NAME `
  --source=SOURCE_CONNECTION_PROFILE_ID `
  --destination=DESTINATION_CONNECTION_PROFILE_ID `
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST `
  --project=DESTINATION_PROJECT_ID `
  --type=CONTINUOUS

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
create MIGRATION_JOB_ID ^
  --no-async ^
  --region=REGION ^
  --display-name=MIGRATION_JOB_NAME ^
  --source=SOURCE_CONNECTION_PROFILE_ID ^
  --destination=DESTINATION_CONNECTION_PROFILE_ID ^
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST ^
  --project=DESTINATION_PROJECT_ID ^
  --type=CONTINUOUS

您应该会收到类似如下所示的响应:

Waiting for migration job [MIGRATION_JOB_ID]
to be created with [OPERATION_ID]

Waiting for operation [OPERATION_ID] to complete...done.

Created migration job MIGRATION_JOB_ID [OPERATION_ID]
结果

迁移作业现已创建。您可以继续执行迁移流程:

后续步骤