本页面介绍如何使用 Google Cloud CLI 为 Cloud SQL for SQL Server 源创建迁移作业。如需详细了解如何使用 Database Migration Service 在 Cloud SQL for SQL Server 实例之间迁移,请参阅 Cloud SQL for SQL Server 源的迁移指南。
准备工作
- 确保您满足以下要求:
- 您有一个 Cloud Storage 存储桶,用于存放 SQL Server 备份文件。
- 您已为源实例创建了源连接配置文件。
- 您已创建并配置 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 替换为包含目标 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]
迁移作业现已创建。您可以继续执行迁移流程: