

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 就地升級執行方式
<a name="AuroraMySQL.Upgrading.Procedure"></a>

建議您檢閱[Aurora MySQL 主要版本就地升級的運作方式](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence)中的背景資料。

執行任何升級前規劃和測試，如 [規劃 Aurora MySQL 叢集的主要版本升級](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Planning) 中所述。

## 主控台
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.CON"></a>

下列範例會將 `mydbcluster-cluster` 資料庫叢集升級至 Aurora MySQL 3.04.1 版。

**升級 Aurora MySQL 資料庫叢集的主要版本**

1. 登入 AWS 管理主控台，開啟位於 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1. 如果您已對原始資料庫叢集使用自訂參數群組，請建立與新主要版本相容的對應參數群組。對該新參數群組中的組態參數進行任何必要的調整。如需更多詳細資訊，請參閱 [就地升級如何影響叢集的參數群組](#AuroraMySQL.Upgrading.ParamGroups)。

1.  在導覽窗格中，選擇 **Databases** (資料庫)。

1.  在清單中，選擇您要修改的資料庫叢集。

1.  選擇 **Modify (修改)**。

1.  對於 **Version** (版本)，請選擇新的 Aurora MySQL 主要版本。

   我們通常建議使用主要版本的最新次要版本。在這裡，我們選擇目前的預設版本。  
![\[將 Aurora MySQL 資料庫叢集從第 2 版就地升級至第 3 版\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/ams-upgrade-v2-v3.png)

1.  選擇 **Continue (繼續)**。

1.  在下一頁中，指定執行升級的時間。選擇 **During the next scheduled maintenance window** (在下一個排程的維護期間) 或 **Immediately** (立即)。

1.  (選用) 在升級期間，定期檢查 RDS 主控台中的 **Events** (事件) 頁面。這樣做可協助您監控升級的進度，並找出任何問題。如果升級發生任何問題，請參閱 [Aurora MySQL 就地升級疑難排解](AuroraMySQL.Upgrading.Troubleshooting.md) 以了解要採取的步驟。

1. 如果您在此程序開始時建立了新的參數群組，請將自訂參數群組與升級的叢集建立關聯。如需更多詳細資訊，請參閱 [就地升級如何影響叢集的參數群組](#AuroraMySQL.Upgrading.ParamGroups)。
**注意**  
 執行此步驟需要再次啟動叢集，才能套用新的參數群組。

1.  (選用) 完成任何升級後測試後，請刪除升級開始時 Aurora 建立的手動快照。

## AWS CLI
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.CLI"></a>

若要升級 Aurora MySQL 資料庫叢集的主要版本，請使用具有下列必要參數的 AWS CLI [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 命令：
+ `--db-cluster-identifier`
+ `--engine-version`
+ `--allow-major-version-upgrade`
+  `--apply-immediately` 或 `--no-apply-immediately` \$1

如果您的叢集使用任何自訂參數群組，也請包含下列其中一個或兩個選項：
+ `--db-cluster-parameter-group-name` (如果叢集使用自訂叢集參數群組)
+ `--db-instance-parameter-group-name` (如果叢集中的任何執行個體使用自訂資料庫參數群組)

下列範例會將 `sample-cluster` 資料庫叢集升級至 Aurora MySQL 3.04.1 版。升級會立即進行，而不是等待下一個維護時段。

**Example**  
對於 Linux、macOS 或 Unix：  

```
aws rds modify-db-cluster \
          --db-cluster-identifier sample-cluster \
          --engine-version 8.0.mysql_aurora.3.04.1 \
          --allow-major-version-upgrade \
          --apply-immediately
```
在 Windows 中：  

```
aws rds modify-db-cluster ^
          --db-cluster-identifier sample-cluster ^
          --engine-version 8.0.mysql_aurora.3.04.1 ^
          --allow-major-version-upgrade ^
          --apply-immediately
```
您可以將其他 CLI 命令與 `modify-db-cluster` 合併，建立自動化端對端程序，以執行和驗證升級。如需詳細資訊和範例，請參閱 [Aurora MySQL 會就地升級教學](AuroraMySQL.Upgrading.Tutorial.md)。

**注意**  
如果您的叢集是 Aurora 全域資料庫的一部分，就地升級程序會略有差異。呼叫 [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) 命令操作，而不是 `modify-db-cluster`。如需更多詳細資訊，請參閱 [全域資料庫的就地主要升級](#AuroraMySQL.Upgrading.GlobalDB)。

## RDS API
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.API"></a>

若要升級 Aurora MySQL 資料庫叢集的主要版本，請搭配下列必要參數使用 RDS API 操作 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)：
+ `DBClusterIdentifier`
+ `Engine`
+ `EngineVersion`
+ `AllowMajorVersionUpgrade`
+ `ApplyImmediately` (設定為 `true` 或 `false`)

**注意**  
如果您的叢集是 Aurora 全域資料庫的一部分，就地升級程序會略有差異。呼叫 [ModifyGlobalCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyGlobalClusterParameterGroup.html) 操作，而不是 `ModifyDBCluster`。如需更多詳細資訊，請參閱 [全域資料庫的就地主要升級](#AuroraMySQL.Upgrading.GlobalDB)。

## 就地升級如何影響叢集的參數群組
<a name="AuroraMySQL.Upgrading.ParamGroups"></a>

對於與 MySQL 5.7 或 8.0 相容的叢集，Aurora 參數群組具有不同的組態設定集。當您執行就地升級時，升級的叢集及其所有執行個體必須使用對應的叢集和執行個體參數群組。

您的叢集和執行個體可能會使用預設的 5.7 相容參數群組。若是如此，升級的叢集和執行個體會以預設的 8.0 相容參數群組開始。如果您的叢集和執行個體使用任何自訂參數群組，請務必建立對應的 8.0 相容參數群組。此外，亦請務必在升級過程中指定這些項目。

**注意**  
對於大部分參數設定，您可以在兩點選擇自訂參數群組。這些是您建立叢集或在將參數群組與叢集建立關聯時。  
不過，如果您對 `lower_case_table_names` 參數使用非預設設定，則必須預先使用此設定來設定自訂參數群組。然後，在執行快照還原來建立叢集時指定參數群組。在建立叢集之後，對 `lower_case_table_names` 參數的任何變更都無效。  
當您從 Aurora MySQL 第 2 版升級到第 3 版時，我們建議您針對 `lower_case_table_names` 使用相同的設定。  
使用以 Aurora MySQL 為基礎的 Aurora 全球資料庫時，只有將 `lower_case_table_names` 參數設為預設值並重新啟動全球資料庫，才能從 Aurora MySQL 第 2 版就地升級至第 3 版。如需詳細了解您可以使用的方法，請參閱 [主要版本升級](aurora-global-database-upgrade.md#aurora-global-database-upgrade.major)。

## 在 Aurora MySQL 版本之間對叢集屬性的變更
<a name="AuroraMySQL.Upgrading.Attrs"></a>

當您從 Aurora MySQL 第 2 版升級至第 3 版時，請務必確認用於設定或管理 Aurora MySQL 叢集和資料庫執行個體的任何應用程式或指令碼。

此外，變更操作參數群組的程式碼，以考慮預設參數群組名稱對於 5.7 和 8.0 相容叢集不同的事實。Aurora MySQL 第 2 版和第 3 版叢集的預設參數群組名稱分別為 `default.aurora-mysql5.7` 和 `default.aurora-mysql8.0`。

例如，在升級之前，可能會有如下所示的程式碼套用至叢集。

```
# Check the default parameter values for MySQL 5.7–compatible clusters.
aws rds describe-db-parameters --db-parameter-group-name default.aurora-mysql5.7 --region us-east-1
```

 升級叢集的主要版本後，如下所示修改該程式碼。

```
# Check the default parameter values for MySQL 8.0–compatible clusters.
aws rds describe-db-parameters --db-parameter-group-name default.aurora-mysql8.0 --region us-east-1
```

## 全域資料庫的就地主要升級
<a name="AuroraMySQL.Upgrading.GlobalDB"></a>

 若為 Aurora 全域資料庫，您可以升級全域資料庫叢集。Aurora 會自動同時升級所有叢集，並確保其皆執行相同的引擎版本。這項要求是因為對系統資料表、資料檔案格式等所做的任何變更都會自動複寫至所有次要叢集。

請遵循中的說明進行[Aurora MySQL 主要版本就地升級的運作方式](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence) 在您指定要升級的內容時，請確認已選擇全域資料庫叢集，而非其中包含的其中一個叢集。

若您使用 AWS 管理主控台，請選擇具有 **Global database** (全域資料庫) 角色的項目。

![\[升級全域資料庫叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-databases-major-upgrade-global-cluster.png)


 如果您使用 AWS CLI 或 RDS API，請呼叫 [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) 命令或 [ModifyGlobalCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyGlobalCluster.html) 操作來啟動升級程序。您會使用其中一個，而不是 `modify-db-cluster` 或 `ModifyDBCluster`。

**注意**  
在執行 Aurora 全球資料庫的主要版本升級時，無法為全域資料庫叢集指定自訂參數群組。在全域叢集的每個區域中建立您的自訂參數群組。然後，在升級後手動將其套用至區域叢集。

 若要透過使用 AWS CLI 來升級 Aurora MySQL 全球資料庫叢集的主要版本，請使用具有下列必要參數的 [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) 命令：
+  `--global-cluster-identifier` 
+  `--engine aurora-mysql` 
+  `--engine-version` 
+  `--allow-major-version-upgrade` 

下列範例會將全球資料庫叢集升級至 Aurora MySQL 3.04.2 版。

**Example**  
對於 Linux、macOS 或 Unix：  

```
aws rds modify-global-cluster \
          --global-cluster-identifier global_cluster_identifier \
          --engine aurora-mysql \
          --engine-version 8.0.mysql_aurora.3.04.2 \
          --allow-major-version-upgrade
```
在 Windows 中：  

```
aws rds modify-global-cluster ^
          --global-cluster-identifier global_cluster_identifier ^
          --engine aurora-mysql ^
          --engine-version 8.0.mysql_aurora.3.04.2 ^
          --allow-major-version-upgrade
```

## 使用跨區域僅供讀取複本進行資料庫叢集就地升級
<a name="AuroraMySQL.Upgrading.XRRR"></a>

您可以使用就地升級程序升級具有跨區域僅供讀取複本的 Aurora 資料庫叢集，但有一些考量：
+ 您必須先升級僅供讀取複本資料庫叢集。如果您嘗試先升級主要叢集，您會收到錯誤訊息，如下所示：

  無法升級資料庫叢集 test-xr-primary-cluster，因為關聯的 Aurora 跨區域複本 test-xr-replica-cluster 尚未修補。請升級 Aurora 跨區域複本，然後再試一次。

  這表示主要資料庫叢集的資料庫引擎版本不能高於複本叢集。
+ 升級主要資料庫叢集之前，請先停止寫入工作負載，並停用對主要叢集寫入器資料庫執行個體的任何新連線請求。
+ 當您升級主要叢集時，請選擇自訂資料庫叢集參數群組，並將 `binlog_format` 參數設定為支援二進位記錄複寫的值，例如 `MIXED`。

  如需搭配 Aurora MySQL 使用二進位記錄的詳細資訊，請參閱 [Aurora 與 MySQL 之間或 Aurora 與另一個 Aurora 資料庫叢集之間的複寫 (二進位複寫)](AuroraMySQL.Replication.MySQL.md)。如需修改 Aurora MySQL 組態參數的詳細資訊，請參閱 [Aurora MySQL 組態參數](AuroraMySQL.Reference.ParameterGroups.md) 和 [Amazon Aurora 的參數群組](USER_WorkingWithParamGroups.md)。
+ 升級複本叢集之後，請勿等待很長的時間才升級主要資料庫叢集。我們建議不要等待超過下一個維護時段。
+ 升級主要資料庫叢集之後，請重新啟動其寫入器資料庫執行個體。在寫入器資料庫執行個體重新啟動之前，啟用 binlog 複寫的自訂資料庫叢集參數群組不會生效。
+ 在您確認跨區域複寫已重新啟動，且次要 AWS 區域 中的複本延遲為 0 之前，請勿繼續寫入工作負載或啟用寫入器資料庫執行個體的連線。