本文档介绍了 AlloyDB for PostgreSQL 数据库主要版本就地升级,您可以通过这种升级方式将数据库升级到更高版本,而无需迁移数据或替换现有实例。
PostgreSQL 社区会定期发布新的主要版本,其中包含新功能、性能改进和安全增强功能。PostgreSQL 发布新的主要版本后,AlloyDB 会添加对兼容版本的支持。如需让数据库保持最新,您可以通过升级到更高的主要版本来升级 AlloyDB 集群。您可以通过使用此就地升级功能或将数据迁移到新的 AlloyDB 集群来升级集群。
如需了解详情,请参阅数据库版本政策。
主要版本就地升级是一种高效的集群主要版本升级方式,原因如下:
- AlloyDB 会在升级后保留集群和实例详细信息以及数据库设置(例如实例名称、IP 地址和数据库标志)。
- 您无需更改应用连接字符串。
- 所有集群实例(主实例和读取池)都会在同一操作中升级。
主要版本就地升级工作流
当您开始对集群进行升级时,AlloyDB 会执行以下操作:
- 运行升级前检查,以查找可能影响升级的不兼容情况。
- 为主要版本升级做准备,包括创建集群的内部克隆。
- 将主实例设为不可用。停机开始。读取操作仍可通过读取池完成。
- 启动升级前备份。
- 升级主实例。
- 将读取池实例设为不可用。
- 将主实例设为不可用。停机结束。
- 启动升级后备份。
- 升级读取池实例。
升级前检查通过后,您的集群会克隆到同一项目中的内部集群。克隆集群所需的备份和恢复时间大约为每 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
来确定是否可以取消升级:
- 如果
cancellable
为true
,则您可以取消升级。 - 如果
cancellable
为false
或状态中缺少,则您无法取消升级。
自动升级前和升级后备份
执行主要版本升级时,AlloyDB 会自动创建以下持续备份,其中 XX
是来源主要版本,YY
是目标主要版本。
- 升级前备份会在升级开始之前立即创建。此备份使用
pre-upgrade-bkp-pgXX-pgYY-<uuid>
格式进行命名。您可以使用此备份恢复到升级前的状态。请注意,恢复不是就地操作,而是会创建一个新集群。 - 升级后备份会在主实例升级后创建。此备份使用
post-upgrade-bkp-pgXX-pgYY-<uuid>
格式进行命名。
持续备份是增量备份,这意味着备份仅存储相对于上一次持续备份发生变化的数据。这种方法可以缩减备份的大小和费用(以资源计),并加快备份创建过程。如需了解详情,请参阅数据备份和恢复概览。
查看备份列表,系统会列出类型为 CONTINUOUS
的升级备份。如需了解详情,请参阅查看备份列表。
执行时间点恢复 (PITR) 需要有相应版本的备份。在升级后备份或在升级主实例后启动的其他备份完成之前,升级后的集群无法恢复。