数据库主要版本就地升级概览

本文档介绍了 AlloyDB for PostgreSQL 数据库主要版本就地升级,您可以通过这种升级方式将数据库升级到更高版本,而无需迁移数据或替换现有实例。

PostgreSQL 社区会定期发布新的主要版本,其中包含新功能、性能改进和安全增强功能。PostgreSQL 发布新的主要版本后,AlloyDB 会添加对兼容版本的支持。如需让数据库保持最新,您可以通过升级到更高的主要版本来升级 AlloyDB 集群。您可以通过使用此就地升级功能或将数据迁移到新的 AlloyDB 集群来升级集群。

如需了解详情,请参阅数据库版本政策

主要版本就地升级是一种高效的集群主要版本升级方式,原因如下:

  • AlloyDB 会在升级后保留集群和实例详细信息以及数据库设置(例如实例名称、IP 地址和数据库标志)。
  • 您无需更改应用连接字符串。
  • 所有集群实例(主实例和读取池)都会在同一操作中升级。

主要版本就地升级工作流

当您开始对集群进行升级时,AlloyDB 会执行以下操作:

  1. 运行升级前检查,以查找可能影响升级的不兼容情况。
  2. 为主要版本升级做准备,包括创建集群的内部克隆。
  3. 将主实例设为不可用。停机开始。读取操作仍可通过读取池完成。
  4. 启动升级前备份。
  5. 升级主实例。
  6. 将读取池实例设为不可用。
  7. 将主实例设为不可用。停机结束。
  8. 启动升级后备份。
  9. 升级读取池实例。

升级前检查通过后,您的集群会克隆到同一项目中的内部集群。克隆集群所需的备份和恢复时间大约为每 TB 数据 10 分钟。

在克隆操作期间,您可以继续使用原始集群。克隆操作完成后,升级过程便会开始。在升级主实例之前,主实例无法用于读写操作。预计停机时间通常为 20 分钟到 1 小时,主要取决于数据库架构和对象数量。

主实例升级后,读取池实例会变得不可用。系统会尝试同时升级所有读取池实例。停机时间预计会持续约 20 分钟。

如果主要版本升级在升级主实例之前的任何步骤失败,AlloyDB 会自动回滚所有更改。

升级主实例后,集群版本会升级到目标版本,此后不会因任何失败而触发回滚。例如,如果一个或多个读取池实例升级失败,AlloyDB 不会回滚集群。在这些情况下,请与 Google Cloud CLI 支持团队联系。

下表大致估算了不同数据库大小的集群完成升级所需的时间:

数据库大小 升级前(无停机时间) 主实例停机时间 读取池停机时间 总时长
100 GB 约 15 分钟 约 20 分钟 约 20 分钟 约 1 小时
1 TB 约 30 分钟 约 20 分钟 约 20 分钟 约 1 小时 15 分钟
4 TB 约 1 小时 约 20 分钟 约 20 分钟 约 1 小时 45 分钟
16 TB 约 3 小时 约 20 分钟 约 20 分钟 约 3 小时 45 分钟
32 TB 约 5 小时 30 分钟 约 20 分钟 约 20 分钟 约 6 小时 15 分钟
64 TB 约 11 小时 约 20 分钟 约 20 分钟 约 12 小时
128 TB 约 21 小时 30 分钟 约 20 分钟 约 20 分钟 约 22 小时 15 分钟

如需了解详情,请参阅就地升级数据库主要版本

升级状态

您可以在数据库主要版本就地升级进行时监控该操作的状态

升级过程包括以下阶段:

  • ALLOYDB_PRECHECK
  • PG_UPGRADE_CHECK
  • PREPARE_FOR_UPGRADE
  • PRIMARY_INSTANCE_UPGRADE
  • READ_POOL_INSTANCES_UPGRADE
  • ROLLBACK(仅在读取数据池升级前失败时)
  • CLEANUP

这些阶段的可能状态包括:

  • NOT_STARTED
  • IN_PROGRESS
  • SUCCESS
  • FAILED
  • CANCEL_IN_PROGRESS
  • CANCELLED

升级取消

在主实例升级期间,您可以在特定时间点之前取消升级操作。一旦达到该时间点,您将无法取消升级。

在 Google Cloud 控制台中,如果取消升级按钮显示为灰色,则表示该操作无法取消。您可以使用 Google Cloud CLI 或 REST API 通过检查升级状态中的 upgradeClusterStatus 来确定是否可以取消升级

  • 如果 cancellabletrue,则您可以取消升级。
  • 如果 cancellablefalse 或状态中缺少,则您无法取消升级。

自动升级前和升级后备份

执行主要版本升级时,AlloyDB 会自动创建以下持续备份,其中 XX 是来源主要版本,YY 是目标主要版本。

  • 升级前备份会在升级开始之前立即创建。此备份使用 pre-upgrade-bkp-pgXX-pgYY-<uuid> 格式进行命名。您可以使用此备份恢复到升级前的状态。请注意,恢复不是就地操作,而是会创建一个新集群。
  • 升级后备份会在主实例升级后创建。此备份使用 post-upgrade-bkp-pgXX-pgYY-<uuid> 格式进行命名。

持续备份是增量备份,这意味着备份仅存储相对于上一次持续备份发生变化的数据。这种方法可以缩减备份的大小和费用(以资源计),并加快备份创建过程。如需了解详情,请参阅数据备份和恢复概览

查看备份列表,系统会列出类型为 CONTINUOUS 的升级备份。如需了解详情,请参阅查看备份列表

执行时间点恢复 (PITR) 需要有相应版本的备份。在升级后备份或在升级主实例后启动的其他备份完成之前,升级后的集群无法恢复。

后续步骤