

# 升级 Amazon Aurora PostgreSQL 数据库集群
<a name="USER_UpgradeDBInstance.PostgreSQL"></a><a name="pgsql_upgrade"></a>

仅当经过广泛的测试后，Amazon Aurora 才会在 Amazon Web Services 区域中推出 PostgreSQL 数据库引擎的新版本。当您的区域中推出新版本时，您可以将 Aurora PostgreSQL 数据库集群升级到新版本。

根据数据库集群当前运行的 Aurora PostgreSQL 版本，升级到新版本可能是次要版本升级，也可能是主要版本升级。例如，将 Aurora PostgreSQL 11.15 数据库集群升级到 Aurora PostgreSQL 13.6 就是*主要版本升级*。将 Aurora PostgreSQL 13.3 数据库集群升级到 Aurora PostgreSQL 13.7 是*次要版本升级*。在以下主题中，您可以了解有关如何执行这两种升级类型的信息。

**Contents**
+ [Aurora PostgreSQL 升级过程概述](#USER_UpgradeDBInstance.PostgreSQL.Overview)
+ [获取您的 Amazon Web Services 区域中可用版本的列表](USER_UpgradeDBInstance.PostgreSQL.UpgradeVersion.md)
+ [执行主要版本升级](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md)
  + [测试将生产数据库集群升级到新的主要版本](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)
  + [升级后建议](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.postupgrade)
  + [将 Aurora PostgreSQL 引擎升级到新的主要版本](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.Upgrading.Manual)
    + [全局数据库的主要版本升级](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.GlobalDB)
+ [执行次要版本升级](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md)
  + [在执行次要版本升级之前](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.BeforeMinor)
  + [如何执行次要版本升级和应用补丁](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor)
  + [次要版本升级和零停机时间修补](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp)
  + [零停机时间修补的限制](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations)
  + [将 Aurora PostgreSQL 引擎升级到新的次要版本](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.MinorUpgrade)
+ [升级 PostgreSQL 扩展](USER_UpgradeDBInstance.Upgrading.ExtensionUpgrades.md)
+ [备选的蓝绿升级技术](#USER_UpgradeDBInstance.Upgrading.BlueGreen)

## Aurora PostgreSQL 升级过程概述
<a name="USER_UpgradeDBInstance.PostgreSQL.Overview"></a>

主要版本升级和次要版本升级之间的区别如下：

**次要版本升级和补丁**  
次要版本升级和补丁仅包含与现有应用程序向后兼容的更改。只有在经过 Aurora PostgreSQL 测试并批准后，您才可以使用次要版本升级和补丁。  
Aurora 可以自动为您应用次要版本升级。在您创建新的 Aurora PostgreSQL 数据库集群时，默认情况下启用了**启用次要版本升级**选项。除非您手动关闭此选项，否则 Aurora 会在您计划的维护时段内定期应用自动次要版本升级。有关自动次要版本升级（AmVU）选项以及如何修改 Aurora 数据库集群以使用该选项的更多信息，请参阅[Aurora 数据库集群的自动次要版本升级](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU)。  
如果没有为 Aurora PostgreSQL 数据库集群启用自动次要版本升级，则 Aurora PostgreSQL 不会自动升级到新的次要版本。相反，当您的 Amazon Web Services 区域中发布了新的次要版本，但您的 Aurora PostgreSQL 数据库集群运行的是较旧的次要版本时，Aurora 会提示您进行升级。它通过向集群的维护任务添加建议来实现。  
补丁不被视为升级，不会自动应用。Aurora PostgreSQL 通过向 Aurora PostgreSQL 数据库集群的维护任务添加建议，提示您应用任何补丁。有关更多信息，请参阅 [如何执行次要版本升级和应用补丁](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor)。  
解决安全或其他严重问题的补丁也会添加为维护任务。但是，这些补丁是必需的。确保当安全补丁在待定的维护任务中变为可用时，将它们应用于 Aurora PostgreSQL 数据库集群。  
系统会对默认次要版本执行自动次要版本升级。
随着集群中的每个实例都升级到新版本，升级过程可能会导致短暂的中断。但是，在 Aurora PostgreSQL 版本 14.3.3、13.7.3、12.11.3、11.16.3、10.21.3 以及这些次要版本的其他更高版本和更高的主要版本之后，升级过程使用零停机修补（ZDP）特征。此特征可最大限度地减少中断，并在大多数情况下彻底消除中断。有关更多信息，请参阅 [次要版本升级和零停机时间修补](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp)。有关 ZDP 支持的功能及相关限制的更多信息，请参阅[零停机时间修补的限制](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations)。

**主要版本升级。**  
与次要版本升级和补丁不同，Aurora PostgreSQL 没有自动主要版本升级选项。新的主要 PostgreSQL 版本可能包含未与现有应用程序向后兼容的数据库更改。新功能会导致现有应用程序停止正常工作。  
为了避免出现任何问题，我们强烈建议您在升级 Aurora PostgreSQL 数据库集群中的数据库实例之前，按照[测试将生产数据库集群升级到新的主要版本](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)中概括的过程操作。首先，请按照该过程确保您的应用程序可以在新版本上运行。然后，您可以手动将 Aurora PostgreSQL 数据库集群升级到新版本。  
随着集群中的所有实例都升级到新版本，升级过程可能会导致短暂停机。初步计划过程也需要时间。我们建议您始终在集群的维护时段或操作极少时执行升级任务。有关更多信息，请参阅 [执行主要版本升级](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md)。

**注意**  
次要版本升级和主要版本升级都可能会导致短暂的中断。因此，我们强烈建议您在维护时段或利用率低的其他时段执行或安排升级。

Aurora PostgreSQL 数据库集群偶尔需要操作系统更新。这些更新可能包含较新版本的 glibc 库。在此类更新期间，我们建议您遵循 [Aurora PostgreSQL 中支持的排序规则](PostgreSQL-Collations.md)中所述的指南。

## 备选的蓝绿升级技术
<a name="USER_UpgradeDBInstance.Upgrading.BlueGreen"></a>

在某些情况下，您的首要任务是立即从旧集群切换到升级后的集群。在此类情况下，您可以使用多步骤流程，并排运行新旧集群。此处，您可以将数据从旧集群复制到新集群，直到您准备好接管新集群。有关详细信息，请参阅[使用 Amazon Aurora 蓝绿部署进行数据库更新](blue-green-deployments.md)。