随着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迁移数据的方式进行升级。