针对同构 PostgreSQL 的快速启动迁移

本页面介绍了如何快速开始将同构 PostgreSQL 迁移到 Cloud SQL for PostgreSQL 和 AlloyDB for PostgreSQL。 快速启动迁移是一种轻量级持续迁移流程,适用于同构 PostgreSQL 场景,可通过自动化网络、嵌入式发现、快速复制(基于 pgnative)等功能简化迁移流程。本页面介绍了同构 PostgreSQL 迁移到 Cloud SQL for PostgreSQL 和 AlloyDB for PostgreSQL 的快速迁移:

  • 概览简要介绍了什么是快速启动迁移,以及如何使用它们来提升迁移体验。
  • 指南和支持的方案包含指向所有快速启动迁移流程的分步说明的链接。
  • 网络连接介绍了 Database Migration Service 在快速启动迁移中采用的独特架构。
  • 限制部分介绍了在执行快速启动迁移时需要注意的已知限制和注意事项。

概览

借助快速启动迁移功能,Database Migration Service 可以自动设置迁移在 VPC 网络中分配了专用 IP 的来源所需的一切,例如 Compute Engine 上的自管理数据库或 Cloud SQL for PostgreSQL 实例。快速启动迁移的主要亮点包括:

  • pgnative 复制:借助原生复制机制,您无需安装额外的 PostgreSQL 扩展程序或降级目标实例即可进行迁移。目标实例上的其他数据库会保持运行状态,不会对您的流量造成任何中断。
  • 简化的网络:Database Migration Service 会自动处理通过专用 IP 进行的网络连接。在快速启动迁移中,系统会自动创建所有必需的资源(专用连接配置、网络连接及其子网),以通过 Private Service Connect 接口建立连接。 如需了解详情,请参阅 网络连接部分。
  • 嵌入式发现:借助 Database Migration Service 可观测性功能,您可以直接在目标 Cloud SQL 或 AlloyDB for PostgreSQL 实例中启动、管理和监控迁移。

下表总结了快速启动和标准同构 PostgreSQL 迁移之间的主要区别:

功能 标准迁移 (pglogical) 快速启动迁移(原生复制)
扩展程序安装 必需。您必须在源数据库中安装并配置 pglogical 扩展程序。 非必需。
目标实例状态 必须为空且降级(对于 Cloud SQL)或处于引导模式(对于 AlloyDB for PostgreSQL)。 可以是具有活跃流量(未迁移)的实时实例。
网络连接 支持复杂的场景,包括 Private Service Connect 接口、Virtual Private Cloud 对等互连、反向 SSH 隧道和公共 IP 连接。 使用 Private Service Connect 接口建立完全私密的连接,以抽象化网络设置。您无需配置源数据库以实现连接,唯一的要求是源数据库在 VPC 网络中分配了专用 IP。
没有主键的表 不受支持。所有表都必须具有主键。 支持。您可以通过将副本标识设置为 INDEXFULL 来复制没有主键的表。
并行迁移作业 不受支持。每个源数据库实例只能运行一个迁移作业。 支持。您可以并行运行多个迁移作业,每个作业从同一来源迁移不同的数据库。
目标对象所有权 对象归 postgres 用户所有。 对象归 Database Migration Service 生成的迁移用户(如果使用 Google Cloud 控制台)或您提供的用户(如果使用 Google Cloud CLI)所有。

指南和支持的场景

快速启动迁移流程的视频预览。

同构 PostgreSQL 快速启动迁移功能可帮助您将数据持续迁移到新的或现有的 Cloud SQL for PostgreSQL 或 AlloyDB for PostgreSQL 目标数据库。此迁移流程最适合从 Google Cloud虚拟私有云 (VPC) 网络中具有专用 IP 地址的来源进行迁移,例如 Compute Engine 上的自行管理数据库,或已启用专用网络的 Cloud SQL for PostgreSQL 实例。托管在 Google Cloud 外部的来源可能需要额外的网络组件(例如 Cloud VPN 连接),以便可以通过 VPC 网络中的专用 IP 地址访问这些来源。

您可以在 Google Cloud 控制台中的多个位置开始快速入门迁移流程:

网络连接

从高层来看,快速启动迁移使用的网络架构与标准同构迁移不同。Database Migration Service 和目标 Cloud SQL for PostgreSQL 或 AlloyDB for PostgreSQL 实例是位于各自专用网络(称为服务网络)中的服务提供方,这些网络位于您在 Google Cloud 项目中使用的 VPC 网络之外。

图 1. 快速启动迁移的网络简化视图(点击可放大)

Database Migration Service 可全面促进快速启动迁移的源连接和目标连接。

对于源数据库连接,快速启动迁移使用 Private Service Connect 接口。此连接方法要求源实例在 Google CloudVPC 网络中具有专用 IP 地址。Compute Engine 或 Cloud SQL for PostgreSQL 实例上的自行管理数据库通常可以开箱即用地满足此要求。托管在 Google Cloud 之外的来源可能需要额外的网络组件(例如 Cloud VPN 连接),以便可以通过 VPC 网络中的专用 IP 地址访问这些来源。

对于目标数据库连接,Database Migration Service 会完全管理与 Cloud SQL for PostgreSQL 实例或 AlloyDB for PostgreSQL 集群的网络通信。唯一的要求是您的目标已启用 Private Service Connect,但无需进行进一步配置。

从来源连接到 Compute Engine 上的自托管数据库

从 Compute Engine 上的自托管数据库进行迁移时,Database Migration Service 会在您的虚拟机所在的同一 VPC 网络中创建网络连接。

此图显示了 Database Migration Service 为从 Compute Engine 上的自托管数据库进行快速启动迁移而提供的网络连接。
图 2. Database Migration Service 提供的网络连接,可用于从 Compute Engine 上的自托管数据库快速启动迁移。 (点击可放大)
此图显示了 Database Migration Service 为从 Compute Engine 上的自托管数据库进行快速启动迁移而提供的网络连接。

从来源连接到 Cloud SQL for PostgreSQL

从 Cloud SQL for PostgreSQL 实例迁移时,Database Migration Service 会在 VPC 网络中创建网络连接,其中您的实例已分配专用 IP。此 IP 地址可能是专用服务访问通道 (PSA) 或 Private Service Connect 配置的结果。如需了解详情,请参阅 Cloud SQL 文档中的专用 IP 配置

此图显示了 Database Migration Service 提供的网络连接,可用于从 Cloud SQL for PostgreSQL 实例快速开始迁移。
图 3.Database Migration Service 提供的网络连接,可用于从 Cloud SQL for PostgreSQL 实例快速开始迁移。 (点击可放大)
此图显示了 Database Migration Service 提供的网络连接,可用于从 Cloud SQL for PostgreSQL 实例快速开始迁移。

与 Google Cloud之外的数据库的来源连接

从 Google Cloud外部托管的数据库迁移时,您需要额外的网络组件来确保您的数据库在 Google Cloud VPC 网络(例如 VPC 网络)中分配有专用 IP 地址。Database Migration Service 会在您的实例分配有专用 IP 的 VPC 网络中创建网络连接。

此图展示了 Database Migration Service 为从本地托管或作为 l10n-placeholder15="15" 以外的受管产品提供的数据库进行快速入门迁移而实现的网络连接。
图 4. Database Migration Service 提供的网络连接,可用于从本地托管或作为 Google Cloud外部托管产品提供的数据库快速开始迁移。(点击可放大)
此图显示了 Database Migration Service 为从本地托管或作为 l10n-placeholder16="16" 以外的受管产品托管的数据库进行快速入门迁移而提供的网络连接。

限制

快速启动迁移存在以下限制。如果您的迁移方案需要使用任何不受支持的功能,我们建议您改用标准迁移流程。如需了解详情,请参阅迁移到 Cloud SQL for PostgreSQL 迁移到 AlloyDB for PostgreSQL 文档页面。

  • 快速迁移不支持从 PostgreSQL 版本 9.6 或更低版本进行迁移。

  • 不支持空数据库(即仅包含系统架构的数据库)。

  • 不支持对目标实例或集群进行 Identity and Access Management (IAM) 身份验证。当您为新目标使用快速启动迁移时,Database Migration Service 会以默认 postgresql 用户身份进行连接。如果您迁移到现有目标,Database Migration Service 会创建一个专用 cloudsqlsuperuser alloydbsuperuser 账号,并使用该账号连接到目标。如需详细了解 IAM,请参阅 Cloud SQL 文档中的 IAM 身份验证或 AlloyDB for PostgreSQL 文档中的 管理 IAM 身份验证

  • 唯一受支持的数据库连接方法是使用 Private Service Connect 接口和 Database Migration Service 专用连接配置。您的源数据库需要在 VPC 网络中分配有专用 IP。快速启动迁移不支持其他同类源连接方法(例如公共 IP 许可名单、反向 SSH 隧道或 VPC 对等互连)。

  • 仅支持启用 Private Service Connect 的目标。PSA Cloud SQL for PostgreSQL 或 AlloyDB for PostgreSQL 实例不支持作为迁移目标。

  • 来源连接的 SSL 加密选项仅支持 nonerequired 变体,以用于快速启动迁移。

  • 快速入门迁移不支持同构 MySQL 或 SQL Server 迁移。

  • 不支持高级功能,例如自定义数据转储并行性设置。

  • 仅支持持续迁移。

  • 快速启动迁移作业最多可容纳 50 个数据库。您不必迁移源数据库服务器中的所有数据库。借助 Database Migration Service,您可以选择要迁移的数据库。

  • 为了实现一致的复制,Database Migration Service 要求所有源表都具有主键。如果您的表没有主键,则在变更数据捕获 (CDC) 阶段仅复制 INSERT 操作。如果您还想复制没有主键的表的 UPDATEDELETE 操作,则需要使用 REPLICA 选项修改这些表。快速启动迁移 指南中介绍了确切的步骤。

  • 适用标准迁移保真度限制。如需了解详情,请参阅 AlloyDB for PostgreSQL 迁移中的迁移保真度 Cloud SQL for PostgreSQL 迁移中的迁移保真度

后续步骤