我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
升级 PostgreSQL 版本 10 的亚马逊 Aurora PostgreSQL 和亚马逊 RDS
-
公告:亚马逊 Aurora PostgreSQL 10.x 的生命周期将于 2023 年 1 月 31 日结束 -
公告:适用于 PostgreSQL 10.x 的亚马逊 RDS 的生命周期将于 2023 年 4 月 17 日结束
与向后兼容现有应用程序的次要版本升级不同,主要版本升级可能包含与现有应用程序不向后兼容的数据库更改。在启动升级之前,我们建议您仔细计划和测试主要版本升级。较高主要版本的好处包括新功能、更高的性能和更高的安全态势。
在这篇文章中,我们涵盖了以下主题:
- 兼容 Aurora PostgreSQL 且适用于 PostgreSQL 的亚马逊 RDS 生命周期结束时间表
- 就地升级与异地升级方法的比较
Aurora PostgreSQL 和亚马逊 RDS for PostgreSQL 生命周期
社区 PostgreSQL 10 的生命周期定于 2022 年 11 月 10 日结束。Aurora 和 RDS for PostgreSQL 的生命周期结束日期源自社区的生命周期终止日期。以下是 RDS 和 Aurora PostgreSQL 10.x 生命周期结束的重要日期:
- 从世界标准时间 2023 年 1 月 31 日 00:00:01 开始,亚马逊云科技 可能会将您的 Aurora PostgreSQL 10.x 数据库升级到更新的主要版本。
- 从世界标准时间 2023 年 4 月 17 日 00:00:01 开始,亚马逊云科技 可能会在预定的维护时段内将您的 RDS for PostgreSQL 10.x 数据库升级到 PostgreSQL 14 主版本。无论维护时段如何,所有剩余的 RDS for PostgreSQL 10.x 数据库都将从 2023 年 7 月 18 日 00:00:01 升级到 PostgreSQL 14。
选择要升级的目标引擎版本
我们建议将所有实例升级到 PostgreSQL 14 或更高版本。但是,目标主要版本的选择可能取决于您的应用程序和业务需求。按计划规划和执行升级可让您确定最符合您需求的版本。
我们建议您先升级到次要版本 10.21 或更高版本,应用任何待处理的操作系统维护,然后直接升级到 PostgreSQL 14 或更高版本,这样您就可以跳过中间主要版本。跳过主要版本有助于节省数据库停机时间和升级工作。或者,如果您的应用程序尚未为 PostgreSQL 14 做好准备,则可以根据您的业务和应用程序需求考虑其他主要版本,例如 PostgreSQL 12 和 PostgreSQL 13。
你可以使用如下代码所示
下表总结了
Current Source Version | Newest Upgrade Target | Other Available Upgrade Targets | ||||||||
10.21 | 14.4 | 14.3 | 13.7 | 12.11 | 11.17 | 11.16 | ||||
10.20 | 13.6 | 12.10 | 11.17 | 11.16 | 11.15 | 10.21 | ||||
10.19 | 11.17 | 11.16 | 11.15 | 11.14 | 10.21 | 10.20 | ||||
10.18 | 13.4 | 12.8 | 11.17 | 11.16 | 11.15 | 11.14 | 11.13 | 10.21 | 10.20 | 10.19 |
10.17 | 11.17 | 11.16 | 11.15 | 11.14 | 11.13 | 11.12 | 10.21 | 10.20 | 10.19 | 10.18 |
您可以按如下方式使用 亚马逊云科技 CLI 来查找适用于 PostgreSQL 版本的目标 Amazon RDS:
下表总结了适用于 PostgreSQL 的亚马逊 RDS 的升级目标。
Current Source Version | Newest Upgrade Target | Other Available Upgrade Targets | ||||||||||
10.21 | 14.4 | 14.3 | 13.7 | 12.11 | 11.17 | 11.16 | 10.22 | |||||
10.20 | 14.2 | 13.6 | 12.10 | 11.17 | 11.16 | 11.15 | 10.22 | 10.21 | ||||
10.19 | 14.1 | 13.5 | 12.9 | 11.17 | 11.16 | 11.15 | 11.14 | 10.22 | 10.21 | 10.20 | ||
10.18 | 13.4 | 12.8 | 11.17 | 11.16 | 11.15 | 11.14 | 11.13 | 10.22 | 10.21 | 10.20 | 10.19 | |
10.17 | 13.3 | 12.7 | 11.17 | 11.16 | 11.15 | 11.14 | 11.13 | 11.12 | 10.21 | 10.20 | 10.19 | 10.18 |
主要版本中提供的功能
下表列出了所有版本的一些主要功能。
Version | Major Features |
14 |
|
13 |
|
12 |
|
有两种方法可以执行主要版本升级:就地升级和异地升级。 就地选项升级 现有实例或集群上的 数据库。 异地涉及外部数据库实例或集群以完成升级。
就地升级
在主要版本升级中,亚马逊 RDS 和 Aurora 完成以下步骤:
- 拍摄升级前的快照。您可以使用此快照进行回滚。
- 关闭实例并为升级做好准备。
- 使用 pg_upgrade 实用程序在实例上运行升级作业。
- 拍摄升级后的快照。现在已在实例上重新配置网络。
就地升级所需的停机时间主要取决于数据库中对象的大小和数量。这可以通过恢复快照并升级来确定。如果您的企业能够用最少的管理任务来承受停机时间,请选择此选项。
要了解有关主要版本升级的更多信息,请参阅 升级 Aurora PostgreSQL 的
异地升级
以下是异地升级的高级步骤。所需的实际步骤可能会有所不同,具体取决于您的环境和您选择的同步方法的类型。
- 使用
RDS 快照 或Aurora 克隆 创建生产数据库实例的副本。 - 将新实例升级到更高的 PostgreSQL 版本。
- 使用下文讨论的方法之一,在源实例和新升级实例之间配置连续复制。
- 在截止时间段内,在源数据库实例和目标数据库实例同步后,将应用程序指向目标数据库实例。
异地升级比就地升级更为复杂,因为它需要手动步骤和监控。
在以下部分中,我们将讨论执行异地升级的三个选项。
选项 A:逻辑复制
Aurora PostgreSQL 和适用于 PostgreSQL 版本 10 及更高版本的亚马逊 RDS 支持使用 pglogical 进行逻辑
该过程通常从拍摄发布者数据库上数据的快照开始,然后将其复制到订阅服务器。然后,发布者上的更改将以实时发生的方式发送给订阅者。本
此过程具有以下优点:
- 可以减少升级期间的停机时间
- 持续复制
但是,它有以下缺点:
- 需要几个步骤来配置复制
- 大型数据库的初始同步可能需要更多时间
- 无法复制大型对象、序列、DDL 等
选项 B:带有 CDC 的 亚马逊云科技 DMS
Aurora PostgreSQL 和适用于 PostgreSQL 的亚马逊 RD
此选项具有以下优点:
- 可以减少升级期间的停机时间
- 持续复制
但是,它有以下缺点:
- 亚马逊云科技 DMS 不支持某些数据类型,例如带时区的时间戳
- 在此升级项目完成期间,您必须支付 亚马逊云科技 DMS 的费用
选项 C:布卡多(适用于 PostgreSQL 和 Aurora PostgreSQL 的亚马逊 RDS)
有关配置 Bucardo 的说明,请参阅使用 Bucardo
此过程具有以下优点:
- 可以对辅助数据库进行预热以便快速设置
- 减少升级停机时间
- 持续复制
但是,它有以下缺点:
- 需要几个步骤进行配置
- 无法处理大型对象和 DDL
- 没有唯一密钥就无法增量复制表(它可以完全复制它们)
- 需要 EC2 实例来托管该工具
就地升级与异地升级方法的比较
选择一个选项而不是另一个选项主要取决于在停机时间和复杂性之间进行权衡。您需要确定您的企业可以承受多少停机时间,以及您愿意承担的升级的复杂性。可以从 RDS 控制台或 CLI 执行就地升级,需要停机。相比之下,异地升级可以减少停机时间,因为升级是在数据库的副本上进行的,但是在进行直接转换之前,需要几个步骤才能使用新数据库实例配置持续复制。
摘要
现在是升级你所有的 PostgreSQL 10 实例的时候了。从现在起到生命周期终止日期之前(Aurora PostgreSQL 为 2023 年 1 月 31 日,适用于 PostgreSQL 的亚马逊 RDS 为 2023 年 4 月 17 日),您可以随时启动升级。我们建议您规划和测试这些主要版本升级,并根据应用程序的需求进行升级。
根据所采用的方法(就地升级或异地升级),您应该使用所选方法对生产数据库实例的副本进行试运行,以估计所需的时间并为最终的生产升级做准备。
如果您需要帮助或需要反馈,请联系您常用的 亚马逊云科技 支持联系人,或者在 亚马逊云科技 re
作者简介
Vivek Singh 是 亚马逊云科技 的数据库专家,专注于亚马逊 RDS/Aurora PostgreSQL 引擎。他与企业客户合作,提供有关 PostgreSQL 运营性能的技术支持,并共享数据库最佳实践。
Garry Knox 是 亚马逊云科技 企业支持的技术客户经理。他与外部客户合作开展各种项目,帮助他们在使用 亚马逊云科技 时提高解决方案的价值。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。