本页面介绍了如何使用 Google Cloud CLI 为 Cloud SQL for SQL Server 源创建迁移作业。如需详细了解如何使用 Database Migration Service 在 Cloud SQL for SQL Server 实例之间进行迁移,请参阅 Cloud SQL for SQL Server 来源迁移指南。
准备工作
- 确保您满足以下要求:
- 您有一个用于存储 SQL Server 备份文件的 Cloud Storage 存储桶。
- 您有一个源实例的来源连接配置文件。
- 您已创建并配置 Cloud SQL for SQL Server 目标实例,并且拥有该实例的目标连接配置文件。
- 在 Google Cloud 控制台的项目选择器页面上,选择或 创建 Google Cloud 项目。
- 启用 Database Migration Service、Compute Engine、Cloud Storage 和 Cloud SQL Admin API。
所需的角色
如需获得在 Database Migration Service 中创建迁移作业所需的权限,请让管理员为您授予项目的以下 IAM 角色:
-
Database Migration Admin (
roles/datamigration.admin) -
Storage Admin (
roles/storage.admin) -
Cloud SQL Editor (
roles/cloudsql.editor)
如需详细了解如何授予角色,请参阅 管理访问权限。
这些预定义角色包含使用 Database Migration Service 执行同构 SQL Server 迁移所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需使用 Database Migration Service 执行同构 SQL Server 迁移,您需要拥有以下权限:
datamigration.*resourcemanager.projects.getresourcemanager.projects.listcloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.databases.getcloudsql.databases.deletecloudsql.operations.getcompute.machineTypes.listcompute.machineTypes.getcompute.projects.getstorage.buckets.createstorage.buckets.liststorage.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 替换为 Google Cloud 项目标识符,其中包含目标 Cloud SQL for SQL Server 实例。 此项目必须是您已启用 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]
迁移作业现已创建。您可以继续执行迁移流程: