从 Cloud SQL for SQL Server 实例迁移

本页面介绍了如何使用 Database Migration Service 将 Cloud SQL for SQL Server 数据库迁移到 Cloud SQL for SQL Server 实例。借助此迁移流程,您可以将数据库迁移到同一 Google Cloud 项目或不同项目中的另一个 Cloud SQL for SQL Server。如需了解如何从自行管理的来源或 Amazon RDS 来源迁移,请参阅 自行托管的来源和 Amazon RDS 来源的迁移指南

Cloud SQL for SQL Server 源的迁移过程涉及以下任务:

  1. 配置源 Cloud SQL for SQL Server 实例,以便 Database Migration Service 可以自动将备份文件导出到 Cloud Storage 存储桶。

  2. 使用 Google Cloud CLI 创建源连接配置文件。

  3. 创建 Cloud SQL for SQL Server 目标实例。

  4. 使用 Google Cloud CLI 在 Database Migration Service 中创建并运行迁移作业。

  5. 使用 Database Migration Service 可观测性功能监控迁移作业进度。

  6. 在数据完全迁移后提升迁移作业。

费用

对于同构迁移到 Cloud SQL,使用 Database Migration Service 无需额外付费。不过,Cloud SQL 和 Cloud Storage 价格适用于网络费用,以及为迁移目的而创建的 Cloud SQL 和 Cloud Storage 实体。

在本文档中,您将使用Google Cloud的以下收费组件:

  • Cloud Storage
  • Cloud SQL

如需根据您的预计使用量来估算费用,请使用价格计算器

准备工作

  1. 验证此迁移路径是否能完全支持您的使用情形。 请参阅 SQL Server 已知限制
  2. 考虑要在哪个区域创建目标数据库。 Database Migration Service 是一款完全区域性的产品,这意味着与迁移相关的所有实体(源连接配置文件和目标连接配置文件、迁移作业、目标数据库、存储分区)都必须保存在单个区域中。
  3. 在 Google Cloud 控制台的项目选择器页面上,选择或 创建 Google Cloud 项目

    转到“项目选择器”

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

    启用 API

所需的角色

如需获得使用 Database Migration Service 在两个 Cloud SQL for SQL Server 实例之间执行同构迁移所需的权限,请让管理员在相关项目中向 迁移过程中涉及的账号授予所需的 IAM 角色。

在此方案中,您可以在位于不同 Google Cloud 项目中的两个 Cloud SQL for SQL Server 实例之间进行迁移。如果您想在同一项目中的实例之间迁移,请授予同一项目中的所有权限。如需详细了解如何授予角色,请参阅 管理访问权限

源项目中的角色和权限

Cloud SQL for SQL Server 实例所在的 Google Cloud 项目中的特定账号授予以下角色:

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

所需权限(源项目)

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

  • 执行迁移的用户账号:
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • cloudsql.operations.get
    • cloudsql.instances.create
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.import
    • cloudsql.databases.get
    • cloudsql.databases.list
    • cloudsql.databases.delete
    • compute.machineTypes.list
    • compute.machineTypes.get
    • compute.projects.get
    • storage.buckets.create
    • storage.buckets.list
  • 目标项目的 Database Migration Service 服务账号:
    • cloudsql.instances.export
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.executeSql

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

目标项目中的角色和权限

向 Google Cloud 项目(即 目标 Cloud SQL for SQL Server 实例所在的项目)中的特定账号授予以下角色:

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

所需权限(目标项目)

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

  • 执行迁移的用户账号:
    • datamigration.*
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • cloudsql.operations.get
    • cloudsql.instances.create
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.import
    • cloudsql.databases.get
    • cloudsql.databases.list
    • cloudsql.databases.delete
    • compute.machineTypes.list
    • compute.machineTypes.get
    • compute.projects.get
    • storage.buckets.create
    • storage.buckets.list
  • Database Migration Service 服务账号:
    • datamigration.*
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • cloudsql.instances.create
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.executeSql
    • storage.objects.create
    • storage.objects.list
  • 实例关联的 Cloud SQL 服务账号:
    • storage.objects.create
    • storage.objects.list
    • storage.objects.get

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

准备源 Cloud SQL 实例

  1. 目标 Google Cloud 项目中 创建 Cloud Storage 存储桶。此存储桶用于存储从源 Cloud SQL for SQL Server 实例导出的备份日志文件。

    • 建议您将这些备份文件的数据保留期限配置为 1430 天之间。
    • 实例关联的 Cloud SQL 服务账号需要具有 Storage Object User (roles/storage.objectUser) IAM 角色,才能将备份文件写入此存储桶。如需详细了解此迁移流程的权限,请参阅 所需角色部分。
  2. 配置 Cloud SQL for SQL Server 源实例

  3. 为 Cloud SQL for SQL Server 源实例 创建源连接配置文件

准备 Cloud SQL for SQL Server 目标实例

如需配置 Cloud SQL 目标实例,请执行以下步骤:

  1. 创建并配置 Cloud SQL for SQL Server 目标实例。 确保您使用足够的计算和内存资源来满足迁移需求。

  2. 为 Cloud SQL 实例 创建目标连接配置文件

创建并运行迁移作业

  1. 为 Cloud SQL for SQL Server 来源创建并运行迁移作业

当您启动迁移作业时,目标 Cloud SQL for SQL Server 数据库会进入恢复模式,由 Database Migration Service 全代管式。当数据完全迁移后,您可以提升目标实例。提升目标实例后,该实例中的所有数据库都会完全正常运行。您还可以获得对这些数据库的完整写入权限。

完成迁移

当您决定将应用切换到新的 Cloud SQL for SQL Server 实例时,请按照以下步骤完成迁移:

  1. 停止对源数据库的所有写入操作。您可以将它们切换到只读模式,以保留操作功能。
  2. 提升迁移作业
  3. (可选) 验证迁移数据的完整性