管理迁移作业

在 Google Cloud 控制台中,您可以对具有相同 状态的迁移作业批量执行操作。您可以在 Google Cloud 控制台中对单个迁移作业执行操作,也可以使用 Google Cloud CLI 执行操作。

您可以对迁移作业执行以下任一操作:

操作 说明
开始 启动未处于正在运行正在启动状态的迁移作业。请参阅 迁移作业状态
停止 停止正在运行的迁移作业。数据移动已暂停。 迁移作业状态会先更改为 Stopping,然后再更改为 Stopped。您可以恢复、删除或 提升已停止的迁移作业。
恢复 如果您在增量加载期间停止了迁移作业,可以稍后继续。当您继续执行迁移作业时,Database Migration Service 会提取在迁移作业停止时累积的所有事务日志文件。
重启 如果迁移作业遇到错误而无法继续进行数据复制,您可以重启该作业。重启迁移作业的结果取决于其失败的原因:
  • 无法从错误中恢复的失败迁移作业会重新尝试整个迁移过程,包括完整备份文件的初始加载。
  • 如果复制因一个或多个源数据库或目标数据库上出现错误而失败,则重启迁移会擦除目标数据库中的所有数据。
  • 如果您在开始迁移后为其他数据库创建了新文件夹,并 将其添加到要迁移的数据库中,那么重启迁移还会将新数据库复制到目标实例中。
删除 您可以删除迁移作业。结果取决于作业的状态:
  • 如果迁移作业处于 Completed 状态,则系统会将相应记录从迁移作业列表中删除。
  • 如果迁移作业处于任何其他状态,则可以选择删除目标 Cloud SQL 实例/主实例对。
推广 在迁移过程中,目标数据库会被置于只读状态,由 Database Migration Service 全代管式。 当您想要将应用切换到已迁移的目标数据库时,提升迁移作业会将目标数据库更新为独立副本。
在迁移过程中,目标 Cloud SQL for SQL Server 数据库会进入恢复模式,由 Database Migration Service 全代管式。在提升迁移作业之前,您无法对目标数据库执行任何读取或写入操作。 请参阅 提升迁移速度

启动迁移作业

迁移作业完全创建后(即未保存为草稿状态),您可以随时启动它以开始迁移数据。

如需启动迁移作业,请执行以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往迁移作业页面。

    前往“迁移作业”

  2. 作业标签页中,点击要启动的迁移作业的显示名称。

    系统随即会打开迁移作业详情页面。

  3. 点击开始
  4. 在对话框中,点击开始

gcloud

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

  • MIGRATION_JOB_ID 替换为您的迁移作业标识符。

    如果您不知道标识符,可以使用 gcloud database-migration migration-jobs list 命令列出给定区域中的所有迁移作业并查看其标识符。

  • REGION 与存储连接配置文件的区域的标识符。

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
start MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration migration-jobs `
start MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
start MIGRATION_JOB_ID ^
  --region=REGION

结果

该操作会以异步方式执行。 因此,此命令会返回一个表示长时间运行的操作的 操作实体

done: false
metadata:
  '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
  apiVersion: v1
  createTime: '2024-02-20T12:20:24.493106418Z'
  requestedCancellation: false
  target: MIGRATION_JOB_ID
  verb: start
name: OPERATION_ID
如需查看操作是否成功,您可以查询返回的操作对象,或检查迁移作业的状态:

停止迁移作业

您可以随时执行以下步骤,停止 正在运行的迁移作业:

控制台

  1. 在 Google Cloud 控制台中,前往迁移作业页面。

    前往“迁移作业”

  2. 作业标签页中,点击要启动的迁移作业的显示名称。

    系统随即会打开迁移作业详情页面。

  3. 点击停止
  4. 在对话框中,点击停止

gcloud

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

  • MIGRATION_JOB_ID 替换为您的迁移作业标识符。

    如果您不知道标识符,可以使用 gcloud database-migration migration-jobs list 命令列出给定区域中的所有迁移作业并查看其标识符。

  • REGION 与存储连接配置文件的区域的标识符。

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
stop MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration migration-jobs `
stop MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
stop MIGRATION_JOB_ID ^
  --region=REGION

结果

该操作会以异步方式执行。 因此,此命令会返回一个表示长时间运行的操作的 操作实体

done: false
metadata:
  '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
  apiVersion: v1
  createTime: '2024-02-20T12:20:24.493106418Z'
  requestedCancellation: false
  target: MIGRATION_JOB_ID
  verb: stop
name: OPERATION_ID
如需查看操作是否成功,您可以查询返回的操作对象,或检查迁移作业的状态:

继续执行迁移作业

您可以通过执行以下步骤恢复 已停止的迁移作业:

控制台

  1. 在 Google Cloud 控制台中,前往迁移作业页面。

    前往“迁移作业”

  2. 作业标签页中,点击要启动的迁移作业的显示名称。

    系统随即会打开迁移作业详情页面。

  3. 点击恢复
  4. 在对话框中,点击继续

gcloud

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

  • MIGRATION_JOB_ID 替换为您的迁移作业标识符。

    如果您不知道标识符,可以使用 gcloud database-migration migration-jobs list 命令列出给定区域中的所有迁移作业并查看其标识符。

  • REGION 与存储连接配置文件的区域的标识符。

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
resume MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration migration-jobs `
resume MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
resume MIGRATION_JOB_ID ^
  --region=REGION

结果

该操作会以异步方式执行。 因此,此命令会返回一个表示长时间运行的操作的 操作实体

done: false
metadata:
  '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
  apiVersion: v1
  createTime: '2024-02-20T12:20:24.493106418Z'
  requestedCancellation: false
  target: MIGRATION_JOB_ID
  verb: resume
name: OPERATION_ID
如需查看操作是否成功,您可以查询返回的操作对象,或检查迁移作业的状态:

重启迁移作业

如需启动迁移作业,请执行以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往迁移作业页面。

    前往“迁移作业”

  2. 作业标签页中,点击要重启的迁移作业的显示名称。

    系统随即会打开迁移作业详情页面。

  3. 点击重新启动
  4. 在该对话框中,点击重启

gcloud

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

  • MIGRATION_JOB_ID 替换为您的迁移作业标识符。

    如果您不知道标识符,可以使用 gcloud database-migration migration-jobs list 命令列出给定区域中的所有迁移作业并查看其标识符。

  • REGION 与存储连接配置文件的区域的标识符。

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
restart MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration migration-jobs `
restart MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
restart MIGRATION_JOB_ID ^
  --region=REGION

结果

该操作会以异步方式执行。 因此,此命令会返回一个表示长时间运行的操作的 操作实体

done: false
metadata:
  '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
  apiVersion: v1
  createTime: '2024-02-20T12:20:24.493106418Z'
  requestedCancellation: false
  target: MIGRATION_JOB_ID
  verb: restart
name: OPERATION_ID
如需查看操作是否成功,您可以查询返回的操作对象,或检查迁移作业的状态:

更新草稿迁移作业

如需完成迁移作业的创建,请执行以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往迁移作业页面。

    前往“迁移作业”

  2. 草稿标签页中,点击要完成创建的迁移作业的显示名称。

    系统随即会打开迁移作业创建向导。

  3. 完成迁移作业的创建。请参阅 创建迁移作业

gcloud

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

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

  • MIGRATION_JOB_ID,其中包含迁移作业的机器可读标识符。
  • REGION 替换为您要在其中保存连接配置文件的区域标识符。
  • MIGRATION_JOB_NAME 为迁移作业提供一个直观易懂的名称。此值显示在 Google Cloud 控制台中的 Database Migration Service 中。
  • SOURCE_CONNECTION_PROFILE_ID,其中包含来源连接配置文件的机器可读标识符。
  • DESTINATION_CONNECTION_PROFILE_ID,其中包含目标连接配置文件的机器可读标识符。
  • 差分备份配置:您可以配置迁移作业能否使用 Cloud Storage 存储桶中的差分备份文件。将以下标志之一添加到您的命令中:
    • --sqlserver-diff-backup,用于为迁移启用差分备份文件
    • --no-sqlserver-diff-backup,用于为迁移停用差分备份文件

    如需详细了解支持的备份文件,请参阅 支持的备份文件类型

  • 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 \
  --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 `
  --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 ^
  --type=CONTINUOUS]

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

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

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

Updated migration job MIGRATION_JOB_ID [OPERATION_ID]

向迁移作业添加数据库

若要向迁移作业添加新的数据库,您首先需要在 Cloud Storage 存储桶中创建一个新的专用文件夹,并将备份文件上传到该文件夹中。请参阅 配置 Cloud Storage 存储分区

在 Cloud Storage 存储桶中有了必要的备份文件后,请执行以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往迁移作业页面。

    前往“迁移作业”

  2. 作业标签页中,点击迁移作业的显示名称。

    系统随即会打开迁移作业详情页面。

  3. 点击修改
  4. 选择要迁移的数据库部分,使用复选框选择要添加到迁移作业的新数据库。
  5. (可选)如果您使用加密备份,请提供备份的加密密钥。如需详细了解如何使用加密备份,请参阅 使用加密备份

    执行以下操作:

    • 点击您要迁移的数据库旁边的修改详细信息

      系统随即会打开加密侧边栏。

    • 使用加密密钥下拉菜单选择您的密钥。
    • Password(密码)字段中,输入加密密钥密码。
    • 点击保存并退出

gcloud

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

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

  • MIGRATION_JOB_ID 替换为您的迁移作业标识符。

    如果您不知道标识符,可以使用 gcloud database-migration migration-jobs list 命令列出给定区域中的所有迁移作业并查看其标识符。

  • REGION 与存储连接配置文件的区域的标识符。
  • COMMA_SEPARATED_DATABASE_ID_LIST,其中包含要从备份文件迁移的 SQL Server 的数据库标识符的逗号分隔列表。这些标识符需要与 Cloud Storage 中的数据库文件夹名称相同。

    例如:--sqlserver-databases=my-business-database,my-other-database

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
update MIGRATION_JOB_ID \
  --region=REGION \
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST

Windows (PowerShell)

gcloud database-migration migration-jobs `
update MIGRATION_JOB_ID `
  --region=REGION `
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
update MIGRATION_JOB_ID ^
  --region=REGION ^
  --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST

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

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

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

Updated migration job MIGRATION_JOB_ID [OPERATION_ID]

修改迁移作业

对于非草稿迁移作业,您可以使用 Google Cloud CLI 更改其显示名称。

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

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

  • MIGRATION_JOB_ID 替换为您的迁移作业标识符。

    如果您不知道标识符,可以使用 gcloud database-migration migration-jobs list 命令列出给定区域中的所有迁移作业并查看其标识符。

  • REGION 与存储连接配置文件的区域的标识符。
  • MIGRATION_JOB_NAME 为迁移作业提供一个直观易懂的名称。此值显示在 Google Cloud 控制台中的 Database Migration Service 中。

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
update MIGRATION_JOB_ID \
  --region=REGION \
  --display-name=MIGRATION_JOB_NAME 

Windows (PowerShell)

gcloud database-migration migration-jobs `
update MIGRATION_JOB_ID `
  --region=REGION `
  --display-name=MIGRATION_JOB_NAME 

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
update MIGRATION_JOB_ID ^
  --region=REGION ^
  --display-name=MIGRATION_JOB_NAME 

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

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

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

Updated migration job MIGRATION_JOB_ID [OPERATION_ID]

测试迁移作业

在运行迁移作业之前,您可以执行测试操作,检查 Database Migration Service 是否可以访问所有必要的源和目标实体。在 Google Cloud 控制台中,您只能测试在迁移作业创建向导中创建的草稿迁移作业(请参阅 创建迁移作业)。

借助 gcloud CLI,您可以测试已创建但尚未开始的迁移作业。

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

  • MIGRATION_JOB_ID 替换为您的迁移作业标识符。

    如果您不知道标识符,可以使用 gcloud database-migration migration-jobs list 命令列出给定区域中的所有迁移作业并查看其标识符。

  • REGION 与存储连接配置文件的区域的标识符。

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud database-migration migration-jobs \
verify MIGRATION_JOB_ID \
  --region=REGION

Windows (PowerShell)

gcloud database-migration migration-jobs `
verify MIGRATION_JOB_ID `
  --region=REGION

Windows (cmd.exe)

gcloud database-migration migration-jobs ^
verify MIGRATION_JOB_ID ^
  --region=REGION

结果

该操作会以异步方式执行。 因此,此命令会返回一个表示长时间运行的操作的 操作实体

done: false
metadata:
  '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
  apiVersion: v1
  createTime: '2024-02-20T12:20:24.493106418Z'
  requestedCancellation: false
  target: MIGRATION_JOB_ID
  verb: verify
name: OPERATION_ID
如需查看操作是否成功,您可以查询返回的操作对象,或检查迁移作业的状态: