针对同构 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 地址、VPC 对等互连或公共 IP 地址访问的来源。目标位置可以使用 Private Service Connect 或专用服务访问通道 (PSA) 进行配置。快速启动迁移的主要亮点包括:

  • 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 接口、虚拟私有云对等互连、反向 SSH 隧道和公共 IP 连接。 目标数据库直接连接到源数据库,从而在源和目标网络配置之间创建依赖项。 使用中介架构,其中 Database Migration Service 分别连接到来源和目标。

对于源连接方法,Database Migration Service 支持 Private Service Connect 接口、虚拟私有云对等互连和公共 IP 连接(具有适用于公共 IP 的专用连接配置)。

对于目标连接,Database Migration Service 利用专用内部网络。这意味着,您的目标实例必须启用专用 IP,但也可以允许公共 IP 连接。 例如,您可以将目标配置为使用 Private Service Connect、专用服务访问通道 (PSA) 和传入公共 IP 连接的任意组合。不支持未配置任何不公开 IP 的目标。

没有主键的表 不受支持。所有表都必须具有主键。 支持。您可以通过将副本标识设置为 INDEX 或 FULL 来复制没有主键的表。
并行迁移作业 不受支持。每个源数据库实例只能运行一个迁移作业。 支持。您可以从同一源实例并行运行多个迁移作业,每个作业迁移不同的数据库(每个作业最多 50 个数据库)。
目标对象所有权 对象归 postgres 用户所有。 对象归 Database Migration Service 生成的迁移用户(如果使用 Google Cloud 控制台)或您提供的用户(如果使用 Google Cloud CLI)所有。

指南和支持的场景

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

同构 PostgreSQL 的快速启动迁移有助于持续同构迁移到新的或现有的 Cloud SQL for PostgreSQL 或 AlloyDB for PostgreSQL 目标。此迁移流程支持通过公共或专用 IP 连接进行迁移:

  • 对于可通过公共 IP 地址访问的来源,使用公共 IP 的专用连接配置。托管在 Google Cloud 外部的数据源可以使用公共 IP 直接连接,也可以使用 Cloud VPN 连接或 Cloud Interconnect 等网络组件通过专用 IP 连接。

  • 对于可通过 Google Cloud虚拟私有云 (VPC) 网络中的专用 IP 地址访问的数据源(使用 Private Service Connect 接口),例如 Compute Engine 上的自管理数据库或 Cloud SQL for PostgreSQL 实例。

您可以在 Google Cloud 控制台中的多个位置开始快速启动迁移之旅:

网络连接

从宏观角度来看,快速启动迁移使用的是中介网络架构。 Database Migration Service 和目标 Cloud SQL for PostgreSQL 或 AlloyDB for PostgreSQL 实例位于您在 Google Cloud 项目中使用的 VPC 网络之外的各自网络中。Database Migration Service 充当中介,与源数据库和目标数据库建立独立连接。

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

Database Migration Service 全面支持来源和目标连接,可实现快速启动迁移。

对于源数据库连接性,Database Migration Service 可以通过具有 Private Service Connect 接口的专用 IP 或从专用公共 IP 连接到源数据库。您可以使用 Database Migration Service 中的专用连接配置资源来配置来源连接。

对于目标数据库连接,Database Migration Service 会通过专用网络全面管理与目标实例的网络通信。这意味着,您的目标实例必须配置专用 IP,但根据具体情况,支持不同的连接设置组合:

  • Cloud SQL for PostgreSQL 目标:对于快速入门迁移,Cloud SQL for PostgreSQL 目标必须配置专用 IP,但也允许启用公共 IP 连接。这些目标实例可以配置为使用 Private Service Connect、专用服务访问通道 (PSA) 和传入公共 IP 连接的任意组合。不支持未配置任何专用 IP 的目的地。

  • AlloyDB for PostgreSQL 目标:对于快速启动迁移,AlloyDB for PostgreSQL 目标必须是启用了 Private Service Connect 连接的实例。完成快速入门迁移后,您可以在目标实例上启用 PSA 或公共 IP 连接。

通过 Private Service Connect 接口实现来源连接

与 Google Cloud外部数据库的源连接

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

此图展示了 Database Migration Service 为从本地托管或作为 l10n-placeholder15="15" 外部托管产品托管的数据库进行快速启动迁移而提供的网络连接。
图 2. Database Migration Service 提供的网络连接,用于从本地托管的数据库或 Google Cloud外部托管的产品进行快速启动迁移。(点击可放大)
此图表展示了 Database Migration Service 为从本地托管的数据库或作为 l10n-placeholder16="16" 外部托管产品/服务托管的数据库进行快速启动迁移而提供的网络连接。

与 Compute Engine 上的自托管数据库的源连接

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

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

与 Cloud SQL for PostgreSQL 的来源连接

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

此图显示了 Database Migration Service 为从 Cloud SQL for PostgreSQL 实例进行快速启动迁移而提供的网络连接。
图 4. Database Migration Service 提供的网络连接,用于从 Cloud SQL for PostgreSQL 实例进行快速启动迁移。 (点击可放大)
此图显示了 Database Migration Service 为从 Cloud SQL for PostgreSQL 实例进行快速启动迁移而提供的网络连接。

使用公共 IP 的来源连接

从使用公共 IP 地址的源数据库进行迁移时,快速启动迁移依赖于针对公共 IP 的专用连接配置。配置后,Database Migration Service 会分配一个新创建的专用静态公共 IP 地址,该地址仅供该专用连接配置使用。如果您的源数据库受防火墙或传入 IP 许可清单保护,您必须将此专用公共 IP 地址添加到源数据库防火墙规则或传入 IP 许可清单中,以便 Database Migration Service 能够建立连接。

此图表展示了 Database Migration Service 为使用公共 IP 的数据库快速启动迁移提供的网络连接。
图 5. Database Migration Service 提供的网络连接,用于使用公共 IP 进行快速启动迁移。(点击可放大)
此图表展示了 Database Migration Service 为使用公共 IP 的数据库快速启动迁移提供的网络连接。

限制

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

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

  • 快速启动迁移不支持反向 SSH 隧道。来源连接必须使用 Private Service Connect 接口、VPC 对等互连或公共 IP。

  • 对于快速启动迁移,来源连接的 SSL 加密选项仅支持 none 和 required 变体(标准迁移支持 verify-ca 和 verify-full)。

  • 快速启动迁移作业最多可容纳 50 个数据库。如果源服务器包含超过 50 个数据库,您可以设置多个并行迁移作业来迁移这些数据库。

  • 标准迁移保真度限制适用,但以下情况除外:

    • 您无需安装 pglogical 扩展程序即可进行快速启动迁移。
    • 支持迁移没有主键的表。

后续步骤