RDS PostgreSQL大版本升级
随着PostgreSQL社区对低版本(如9.4、10等)实例的停止维护,继续使用低版本实例将存在风险,如果您需要将低版本的RDS PostgreSQL实例升级到更高版本,或者希望使用高版本的新特性,建议您进行大版本升级操作。
方案简介
PostgreSQL社区定期发布大版本,带来功能和性能提升。较低版本将逐渐不再受支持,存在性能和安全风险。为了让您享受新版本的提升,同时降低升级风险,RDS PostgreSQL支持大版本升级功能。
RDS PostgreSQL的大版本升级功能可以在升级后保留原实例的设置,例如,白名单、参数设置、插件(新版本不支持的插件和参数除外)。此外,加密RDS PostgreSQL实例升级大版本后仍为加密实例,且加密密钥将保持不变。
升级方案 | 本地升级 | 蓝绿部署 | 零停机 | ||
割接 | 不割接 | ||||
适用场景 | 期望升级后的实例与原实例一致。并可以接受升级期间实例只读。 | 期望保留原实例,并可以接受升级期间实例只读。 |
| 业务不接受长时间停机。 |
|
实现原理 | 使用pg_upgrade将原实例升级到目标版本。同时,保留所有元信息。 | 恢复到一个新实例,并使用pg_upgrade将其升级至目标版本。同时,自动切换原连接地址到新实例。 | 恢复到一个新实例,并使用pg_upgrade将其升级至目标版本。 | 使用pg_upgrade将原实例升级到目标版本。同时,通过原生逻辑复制进行增量更新。 | 手动创建新RDS PostgreSQL实例,并使用异步逻辑复制进行数据迁移。 |
方案优点 | 原实例配置和账单信息完全保留。 |
| 提供独立环境进行升级验证,对原实例无影响。 |
|
|
方案缺点 | 不支持基于旧实例的回滚。 | 不继承原实例的账单信息。 | 无。 |
|
|
原实例只读时间 | 通常为分钟级。 | 通常为分钟级。 | 无。 | 通常为秒级。 | 通常为秒级。 |
费用 | 无升级费用。 | 新建实例按量付费。 | 新建实例按量付费。 | 无升级费用。 |
|
对于本地升级模式,如果在升级过程中实例未达推荐规格,系统将自动尝试使用推荐规格进行升级。这将导致分钟级的只读状态,并额外出现一次秒级闪断。建议升级前,处理大版本升级检查报告中关于实例规格的告警。
大版本升级
方式一:通过本地升级模式升级大版本
方式二:通过蓝绿部署模式升级大版本
方式三:通过零停机模式升级大版本
方式四:通过DTS迁移数据的方式升级
如果通过以上三种方式无法升级,或者期望升级时进行数据校验,您可以通过DTS迁移数据的方式进行升级。