RDS PostgreSQL升级内核小版本

云数据库RDS PostgreSQL提供内核小版本升级功能。通过升级,您将获得包含性能提升、新功能支持和安全问题解决的最新版本,能够确保数据库服务的持续优化和安全。

RDS PostgreSQL内核小版本功能详情请参见AliPG内核小版本发布记录

注意事项

  • 升级内核小版本会重启实例,RDS服务可能会出现一次30秒的闪断,请您尽量在业务低峰期执行升级操作,或确保您的应用有自动重连机制。

  • 升级内核小版本后无法降级。

  • 小版本升级通常不会出现兼容性问题,但因插件的升级有可能会有兼容性问题,如果涉及到插件升级(如Ganos插件版本升级),建议先使用恢复PostgreSQL数据功能,在恢复的新实例上测试新版本插件的兼容性。

  • 相关插件升级注意事项:

    • 如果您的业务已经使用了PostGIS或Ganos插件,在升级内核小版本后,还需要手动升级PostGIS或Ganos插件,升级方法,请参见时空引擎插件升级

    • 如果您的实例大版本为PostgreSQL 14,在20230330内核小版本前已使用了TimescaleDB插件(插件版本小于等于2.5.0),在升级内核小版本到20230330或以上版本后,必须手动执行ALTER EXTENSION timescaledb UPDATE;命令进行手动升级插件后,才能继续使用TimescaleDB插件。

查看内核小版本

您可以通过如下两种方法查看实例当前的内核小版本。

  • 登录RDS管理控制台,在目标实例的基本信息页面查看。

    说明

    此方法仅适用于PostgreSQL云盘版实例。

  • 连接目标PostgreSQL实例,通过show rds_release_date;命令查看。

    说明

    此方法适用于PostgreSQL云盘版和本地盘版实例。

手动升级内核小版本

本地盘实例升级内核小版本

本地盘实例暂不支持手动升级内核小版本。您可以通过重启实例自动升级到最新的小版本。具体操作请参见重启实例

说明

如果当前实例为主实例,拥有只读实例,请先逐个重启所有只读实例,再重启主实例。如果只重启主实例,则只读实例不会升级内核小版本。

云盘实例升级内核小版本

说明

如果当前实例为主实例,拥有只读实例,可以通过两种方式进行升级。

  • 对主实例发起内核小版本升级,该主实例下的所有只读实例都会先立即进行并发升级,然后再升级主实例。

  • 如果您不希望所有只读实例立即升级,请先逐个升级所有只读实例,然后再升级主实例。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 配置信息区域中单击升级内核小版本

  3. 在弹出的对话框中,选择可升级到版本升级时间,单击确定

    可升级到版本中各字段含义:

    • rds:RDS实例。

    • postgres:PostgreSQL数据库。

    • 1200:PostgreSQL大版本为12。

    • 20220830:AliPG内核小版本。各小版本的具体信息,请参见AliPG内核小版本发布记录

    • 12.11:PostgreSQL社区小版本号。

自动升级内核小版本

说明

自动升级内核小版本功能仅支持云盘版实例。

购买RDS PostgreSQL云盘版实例时,默认选择小版本升级策略自动升级,当您的内核小版本低于最新内核小版本时,系统将会不定期地下发主动运维任务来升级内核小版本。任务信息将通过短信、邮件、站内信等渠道通知您。自动升级操作将会在您设置的可维护时间段内进行。您可以在事件管理中修改升级时间,或在任务开始前取消任务,详情请参见计划内事件

image..png

修改自动升级设置

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在实例的基本信息页的配置信息区域查看小版本自动升级的设置情况。

    image..png

  3. 单击小版本自动升级右侧的设置

  4. 在弹出的对话框中,选择自动升级手动升级,然后单击确定

常见问题

升级内核小版本后,PostGIS和Ganos插件访问出错,如何处理?

在升级内核小版本后,还需要手动升级PostGIS或Ganos插件,升级方法,请参见时空引擎插件升级

PostGIS在升级内核小版本时有哪些兼容性问题?

兼容性差异如下表所示:

说明

内核小版本在20211031前的RDS PostgreSQL实例,可能会遇到如下兼容性问题。

PostGIS插件版本

只升级RDS PostgreSQL内核小版本

升级RDS PostgreSQL内核小版本 + 升级PostGIS插件

2.5.x

  • 使用如下函数时,可能导致数据库崩溃

    • ST_ClusterKMeans

    • ST_GeomFromKML

    • ST_AsKML

  • 使用如下函数时,将会报错

    • ST_Buffer

      报错Invalid buffer parameter: uad_segs (accept: 'endcap', 'join', 'mitre_limit', 'miter_limit', 'quad_segs' and 'side')

      解决办法:将quadsegs参数修改为quad_segs

    • ST_Intersects

      报错ERROR: GetGenericCacheCollection: Could not find upper context

      解决办法:无。

  • 如下函数将会被删除,无法使用

    • ST_Force_2D

    • ST_Locate_Along_Measure

    • ST_Estimated_Extent

  • 如下函数的参数值或写法将与升级前不一致

    • ST_GeomFromGeoJSON:升级后会默认指定SRID=4326

    • ST_AsGeoJSON:maxdecimaldigits从16修改为9。

    • MutliPoint写法不一致:

      • 升级前:MULTIPOINT(1 1,-1 1)

      • 升级后:MULTIPOINT((1 1),(-1 1))

  • 如下函数将会被删除,无法使用

    • ST_Force_2D

    • ST_Locate_Along_Measure

    • ST_Estimated_Extent

  • 如下函数的参数值或写法将与升级前不一致

    • ST_GeomFromGeoJSON:升级后会默认指定SRID=4326

    • ST_AsGeoJSON:参数maxdecimaldigits从16修改为9。

    • MutliPoint写法不一致:

      • 升级前:MULTIPOINT(1 1,-1 1)

      • 升级后:MULTIPOINT((1 1),(-1 1))

3.1.x

  • 使用如下函数时,可能导致数据库崩溃

    • ST_ClusterKMeans

  • MutliPoint写法将与升级前不一致

    • 升级前:MULTIPOINT(1 1,-1 1)

    • 升级后:MULTIPOINT((1 1),(-1 1))

MutliPoint写法将与升级前不一致

  • 升级前:MULTIPOINT(1 1,-1 1)

  • 升级后:MULTIPOINT((1 1),(-1 1))

相关文档