本文介绍如何升级RDS PostgreSQL数据库大版本,例如从PostgreSQL 10升级至11。
PostgreSQL社区每年发布一个大版本,社区对每个大版本支持5年,大版本通常带来功能、性能方面的革命性提升,而超过5年的数据库版本,由于社区不再提供支持,性能和安全的风险也将逐渐增加。
注意 大版本升级会保留原实例,并创建一个新版本的实例,新实例在创建中不收费,创建成功后将会产生费用,计费方式为按量付费。新实例暂不继承原实例优惠,请根据实际情况选择是否升级。
为了让您享受PostgreSQL新的大版本带来的功能、性能提升,同时降低升级风险,RDS PostgreSQL提供大版本升级功能,步骤如下:
- 创建升级检查报告
检查当前主实例是否支持大版本升级,并提供检查结果和检查报告,检查报告异常时不允许升级。
- 执行升级
- 指定PostgreSQL大版本进行升级,选择不割接创建一个新版本的测试实例进行业务测试及确保兼容性。
- 测试结束后,在原实例上再次执行大版本升级,选择割接创建一个新版本的实例用于升级后使用。
注意事项
- 升级大版本前需要满足以下前提条件:
- 升级大版本将会造成以下影响:
- 如果选择了割接方式升级,在割接过程中,原实例将会被设置为只读,并会造成分钟级业务闪断,请在业务低峰期进行升级。如果选择不割接方式进行升级,则不受影响。
说明
- 具体的闪断时长取决于数据量以及DNS缓存刷新时间。您可以尝试切换虚拟交换机,通过业务闪断时长来评估客户端的DNS缓存刷新时间。
- 升级过程的时间长短与实例的数据量相关。割接过程的时间长短,与数据量无关,仅受原数据库的数据定义数量影响,包括表定义、索引定义、视图定义、自定义函数、序列定义等。例如在实例中定义100张表、数据量为1G时的升级时长,与定义100张表、数据量为10TB时的升级时长相同。
- 如果原实例使用了新版本不支持的参数,在新版本中该参数会被自动删除,如果在低版本的参数取值不在高版本对应参数的合法区间,在新版本中该参数会被置为高版本参数模板的默认值。
- 新实例不继承原实例的实例名称、标签、云监控报警规则以及备份数据。
- 如果待升级的实例作为数据传输服务(DTS)的源实例或目标实例,则升级后需要重建DTS任务。创建DTS任务详见DTS产品文档。
- 自建的只读节点和逻辑复制槽在升级后仍然保留在原实例下,不会自动转移到高版本实例,需要在升级后进行重建。
- 如果选择了割接方式升级,在割接过程中,原实例将会被设置为只读,并会造成分钟级业务闪断,请在业务低峰期进行升级。如果选择不割接方式进行升级,则不受影响。
- 当待升级的实例中创建了只读实例时,则无法直接进行升级,需要在升级前后进行以下操作:
- 将应用程序中配置的只读实例连接地址修改为主实例连接地址。
说明 为保证业务稳定,建议在业务低峰期修改应用连接地址。
- 删除只读实例。
- 升级大版本。
- 升级完成后,在新实例上重新创建PostgreSQL只读实例。
- 在应用程序中,将升级前修改的实例连接地址修改为新的只读实例连接地址。
- 将应用程序中配置的只读实例连接地址修改为主实例连接地址。
功能特点
- 支持跨版本升级:例如直接从PostgreSQL 10.0升级到PostgreSQL 13.0。
- 支持升级演练:通过不割接的方式,可以在不影响原实例的情况下,验证整个升级流程。
- 支持平滑升级:
- 无需修改应用:通过割接方式升级,新实例地址与原地址相同,无需修改应用。
- 无需停机:升级时原实例无需停机,而是暂时变为只读状态(持续时长为分钟级),降低业务中断带来的风险。此外,由于是通过克隆实例进行升级,所以即使升级失败也不会影响原实例。
- 保留实例设置:升级后保留原实例的白名单、参数设置、插件(新版本不支持的插件和参数除外)。
- 升级后保留原实例的白名单、参数设置、插件(新版本不支持的插件和参数除外)。
- 加密实例升级大版本后仍为加密实例,加密Key保持不变。
计费方式
升级大版本
后续步骤
- 确认业务已稳定运行在新实例中后,将新实例转成包年包月。
- 释放原实例。
- 新实例不包含只读实例,您可以按需创建PostgreSQL只读实例。
相关API
API | 描述 |
---|---|
UpgradeDBInstanceMajorVersionPrecheck | RDS PostgreSQL实例大版本升级检查 |
DescribeUpgradeMajorVersionPrecheckTask | 查询RDS PostgreSQL实例大版本升级检查报告 |
UpgradeDBInstanceMajorVersion | RDS PostgreSQL实例升级数据库大版本 |
DescribeUpgradeMajorVersionTask | 查询RDS PostgreSQL实例大版本升级历史任务 |