

# 升级 Amazon Aurora Global Database
<a name="aurora-global-database-upgrade"></a>

按照与升级 Aurora 数据库集群相同的过程升级 Aurora Global Database。但是，以下是在开始该过程之前需要注意的一些重要区别。

建议您将主数据库集群和辅助数据库集群升级到相同版本。仅当主数据库集群和辅助数据库集群具有相同的主要、次要和补丁级别引擎版本时，您才能对 Aurora Global Database执行托管式跨区域数据库失效转移。但是，补丁级别可能会有所不同，具体取决于次要引擎版本。有关更多信息，请参阅 [托管式跨区域切换和失效转移的补丁级别兼容性](#aurora-global-database-upgrade.minor.incompatibility)。

## 主要版本升级。
<a name="aurora-global-database-upgrade.major"></a>

当您对 Amazon Aurora Global Database 执行主要版本升级时，将升级全局数据库集群，而不是它包含的单个集群。

要了解如何将 Aurora PostgreSQL 全局数据库升级到更高的主要版本，请参阅 [全局数据库的主要版本升级](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.GlobalDB)。

**注意**  
使用基于 Aurora PostgreSQL 的 Aurora Global Database时，如果启用了恢复点目标 (RPO) 功能，则无法对 Aurora 数据库引擎执行主要版本升级。有关 RPO 功能的信息，请参阅 [管理基于 Aurora PostgreSQL 的全局数据库的 RPO](aurora-global-database-disaster-recovery.md#aurora-global-database-manage-recovery)。

要了解如何将 Aurora MySQL 全局数据库升级到更高的主要版本，请参阅 [全局数据库的就地主要版本升级](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.GlobalDB)。

**注意**  
使用基于 Aurora MySQL 的 Aurora Global Database 时，只有当您将 `lower_case_table_names` 参数设置为默认值并且重启全球数据库之后，才能执行从 Aurora MySQL 版本 2 到版本 3 的就地升级。  
要在使用 `lower_case_table_names` 时执行到 Aurora MySQL 版本 3 的主要版本升级，请使用以下过程：  
从全局集群中删除所有辅助区域。按照 [从 Amazon Aurora Global Database 删除集群](aurora-global-database-detaching.md) 中的步骤操作。
将主区域的引擎版本升级到 Aurora MySQL 版本 3。按照 [如何执行就地升级](AuroraMySQL.Upgrading.Procedure.md) 中的步骤操作。
向全局集群添加辅助区域。按照 [将 AWS 区域 添加到 Amazon Aurora Global Database](aurora-global-database-attaching.md) 中的步骤操作。
还可以改用快照还原方法。有关更多信息，请参阅 [从数据库集群快照还原](aurora-restore-snapshot.md)。

## 次要版本升级
<a name="aurora-global-database-upgrade.minor"></a>

您可以通过单一托管操作，以极短的停机时间将所有区域的 Aurora Global Database 升级至更新的次要引擎版本，无需手动逐一升级每个集群，从而降低全局集群管理的运营开销。

### 了解全局数据库次要版本升级
<a name="aurora-global-database-upgrade.minor.understanding"></a>

您可以通过 RDS API、AWS CLI 或 AWS 管理控制台升级全局数据库的次要版本。此单一操作可编排主集群和所有辅助（镜像）集群的升级。如果升级期间出现问题，该服务会自动回滚到现有版本。

**注意**  
当前仅 Aurora PostgreSQL 兼容引擎支持此托管功能。

使用 `modify-global-cluster` 命令启动全局数据库次要版本升级时，您需要指定目标引擎版本，而该服务会编排所有集群的升级。此升级将立即应用。

对于 Linux、macOS 或 Unix：

```
aws rds modify-global-cluster \
    --global-cluster-identifier global_cluster_identifier \
    --engine-version target_engine_version
```

对于：Windows

```
aws rds modify-global-cluster ^
    --global-cluster-identifier global_cluster_identifier ^
    --engine-version target_engine_version
```

### 次要版本升级的注意事项
<a name="aurora-global-database-upgrade.minor.considerations"></a>

在计划全局数据库的次要版本升级时，请注意以下事项：
+ 托管功能仅适用于次要版本升级。补丁版本升级继续使用现有的系统更新维护操作。
+ 只有 Aurora PostgreSQL 全局集群支持托管功能。

 您可以单独升级全局集群拓扑中的各个集群。如果您选择此方法，请先升级所有辅助集群，然后再升级主集群。升级时，请确保将主数据库集群和辅助数据库集群升级到相同的次要版本和补丁级别。要更新补丁级别，请在辅助集群上应用所有待处理的维护操作。要了解如何将 Aurora PostgreSQL 全局数据库升级到更高的次要版本，请参阅 [如何执行次要版本升级和应用补丁](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor)。

### Aurora MySQL 全局数据库的次要版本升级
<a name="aurora-global-database-upgrade.minor.mysql"></a>

要了解如何将 Aurora MySQL 全局数据库升级到更高的次要版本，请参阅 [通过修改引擎版本升级 Aurora MySQL](AuroraMySQL.Updates.Patching.ModifyEngineVersion.md)。

在执行升级之前，请查看以下注意事项：
+ 升级辅助集群的次要版本不会以任何方式影响主集群的可用性或使用情况。
+ 辅助集群必须具有至少一个数据库实例才能执行次要版本升级。
+ 如果您将 Aurora MySQL Global Database 升级到版本 2.11.\$1，则必须将主数据库集群和辅助数据库集群升级到完全相同的版本（包括补丁级别）。
+ 要支持托管式跨区域切换或失效转移，您可能需要将主数据库集群和辅助数据库集群升级到完全相同的版本（包括补丁级别）。此要求适用于 Aurora MySQL 和某些 Aurora PostgreSQL 版本。有关允许在运行不同补丁级别的集群之间进行切换和失效转移的版本列表，请参阅[托管式跨区域切换和失效转移的补丁级别兼容性](#aurora-global-database-upgrade.minor.incompatibility)。

### 托管式跨区域切换和失效转移的补丁级别兼容性
<a name="aurora-global-database-upgrade.minor.incompatibility"></a>

如果您的 Aurora Global Database 正在运行以下次要引擎版本之一，那么即使主数据库集群和辅助数据库集群的补丁级别不匹配，您也可以执行托管式跨区域切换或失效转移。如果次要引擎版本低于此列表中的版本，您的主数据库集群和辅助数据库集群必须运行相同的主要版本、次要版本和补丁级别，才能执行托管式跨区域切换或失效转移。计划主集群和/或辅助集群的升级时，请务必查看下表中的版本信息和注释。

**注意**  
 对于手动跨区域失效转移，只要目标辅助数据库集群运行的主要和次要引擎版本与主数据库集群相同，就可以执行失效转移过程。在这种情况下，补丁级别不需要匹配。  
 如果您的引擎版本需要相同的补丁级别，您可以按照[执行 Aurora 全球数据库的手动失效转移](aurora-global-database-disaster-recovery.md#aurora-global-database-failover.manual-unplanned)中的步骤手动执行失效转移。


| 数据库引擎 | 次要引擎版本 | 备注 | 
| --- | --- | --- | 
| Aurora MySQL | 没有次要版本 | 当主数据库集群和备用数据库集群之间的补丁级别不同时，所有 Aurora MySQL 次要版本都不允许执行托管式跨区域切换或失效转移。 | 
| Aurora PostgreSQL |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-upgrade.html)  | 使用上一列中列出的引擎版本，您可以执行以下托管式跨区域切换或失效转移：从具有一个补丁级别的主数据库集群到具有不同补丁级别的辅助数据库集群。 如果次要版本低于这些版本，仅当主数据库集群和辅助数据库集群的补丁级别匹配时，您才能执行托管式跨区域数据库切换或失效转移。 当您将全局数据库中的集群更新为以下任何补丁版本时，在全局数据库中的所有集群都运行这些补丁版本之一或更高的补丁版本之前，您将无法执行跨区域切换或失效转移。  补丁版本 16.1.6、16.2.4、16.3.2 和 16.4.2 补丁版本 15.3.8、15.4.9、15.5.6、15.6.4、15.7.2 和 15.8.2 补丁版本 14.8.8、14.9.9、14.10.6、14.11.4、14.12.2 和 14.13.2  | 