通过迁移数据升级数据库主要版本

本页面介绍了如何将数据迁移至运行更高版本的 PostgreSQL 的实例。在继续此方法之前,请考虑就地升级数据库主要版本

您可以使用以下两种方式通过迁移数据来升级 Cloud SQL for PostgreSQL 实例的数据库主要版本。

  • 选项 1。使用 Database Migration Service (DMS)。DMS 支持从 Cloud SQL for PostgreSQL 实例迁移。您还可以使用它升级数据库版本。
  • 方法 2.如需将数据从 PostgreSQL 的一个版本迁移到另一个版本,请通过从当前实例导出数据并将其导入一个运行 PostgreSQL 更高版本的新实例。此过程需要关停实例;在开始导出数据之前,请将当前实例置于只读模式。

本页面的其余部分介绍了第二种方法。

规划主要版本升级

  1. 选择目标主要版本。

    请参阅 Cloud SQL 支持的版本列表

  2. 请考虑每个 PostgreSQL 版本中提供的功能并解决不兼容问题。

    新的主要版本引入了不兼容的更改,您可能需要修改应用代码、架构或数据库设置,然后才能升级数据库实例。查看目标主要版本的版本说明,以确定您需要解决的不兼容问题。如果您要跳过主要版本,请解决为每个要跳过的版本列出的不兼容性问题。

  3. 通过试运行测试升级。

    在升级生产数据库之前,请使用测试实例执行端到端升级流程的试运行。建议使用克隆(而非生产数据库)测试升级,以免导出对生产工作负载造成任何性能影响。

    除了验证升级是否成功完成,运行测试还可以了解升级的预期停机时间,确认升级工作流并确保应用在升级的数据库中按预期运行。如果您尚未启用存储空间自动扩容功能,请记下升级后的试运行实例使用的磁盘存储空间,以确定升级前是否需要增加生产实例的存储空间容量。

  4. 确定何时升级。

迁移数据

迁移需要使用 pg_dump 命令从源实例导出数据并使用 pg_restore 命令将数据导入到目标实例。

要将数据迁移到运行较新数据库版本的 Cloud SQL 实例,请按照以下步骤操作:

  1. 使用所需的 PostgreSQL 版本创建目标实例。

    确保目标实例符合以下条件:

    • 存储空间足以容纳当前实例的所有数据。
    • 拥有与当前实例相同的已获授权的网络。了解详情
    • 拥有相同用户账号以及相同的 PostgreSQL 权限和密码。

    如需了解详情,请参阅创建实例

  2. 确认您可以使用本地 PostgreSQL 工具连接到新实例,并在需要时进行更新。

  3. 按照导出数据以导入到 Cloud SQL 中的说明,将当前实例的数据导出到 PostgreSQL 转储文件。

    不要导出 postgres 系统数据库。 postgres 数据库是您在创建任何其他数据库之前连接到的默认数据库。创建另一个数据库后,切换到该数据库以创建表并插入数据。请勿将 postgres 数据库用于应用数据。

  4. 根据需要创建 Cloud Storage 存储桶,并将您的 SQL 转储文件上传到存储桶。

  5. 按照从 Cloud Storage 导入 PostgreSQL 数据库中的说明,将数据导入目标实例。

  6. 可选。完成升级过程后,使用 pglogical 设置源实例和目标实例之间的复制,以使用自上次转储作业以来发生的所有更改来更新目标。两个实例同步后,您可以提升目标实例。

    如需了解如何使用 pglogical 实现持续复制,请参阅配置来源

  7. 更新您的应用以连接到新实例。

  8. 如果您确定新实例已成功运行,请删除旧实例。

后续步骤