

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

# 升級資料庫執行個體 引擎版本
<a name="USER_UpgradeDBInstance.Upgrading"></a>

Amazon RDS 會提供每個受支援資料庫引擎的較新版本，讓您的資料庫執行個體保持在最新版本。較新版本包含資料庫引擎的錯誤修正、安全性強化和其他改善。Amazon RDS支援新版本的資料庫引擎時，您可以選擇如何和何時升級資料庫執行個體。

升級有兩種：主要版本升級和次要版本升級。一般而言，*主要引擎版本升級*可能引進與現有應用程式不相容的變更。反之，*次要版本升級*只包含與現有應用程式回溯相容的變更。

若是多可用區域資料庫叢集，只有 RDS for PostgreSQL 可支援主要版本升級。支援多可用區域資料庫叢集的所有引擎都支援次要版本升級。如需詳細資訊，請參閱[升級 Amazon RDS 多可用區域資料庫叢集的引擎版本](multi-az-db-clusters-upgrading.md)。

每個資料庫引擎有明確的版本編號順序。例如，RDS for MySQL 5.7 和 8.0 是主要引擎版本，而從任何 5.7 版升級到任何 8.0 版是主要版本升級。RDS for MySQL 5.7.22 和 5.7.23 版是次要版本，而從 5.7.22 升級到 5.7.23 是次要版本升級。

**重要**  
升級資料庫執行個體時，您無法修改資料庫執行個體。升級期間，資料庫執行個體狀態為 `upgrading`。

如需特定資料庫引擎的主要和次要版本升級的詳細資訊，根據您的資料庫引擎而定，請參閱以下文件：
+ [MySQL 資料庫引擎的升級](USER_UpgradeDBInstance.MariaDB.md)
+ [Microsoft SQL Server 資料庫引擎的升級](USER_UpgradeDBInstance.SQLServer.md)
+ [RDS for MySQL 資料庫引擎的升級](USER_UpgradeDBInstance.MySQL.md)
+ [升級 RDS for Oracle 資料庫引擎](USER_UpgradeDBInstance.Oracle.md)
+ [RDS for PostgreSQL 資料庫引擎的升級](USER_UpgradeDBInstance.PostgreSQL.md)

對於主要版本升級，您必須透過 AWS 管理主控台 AWS CLI或 RDS API 手動修改資料庫引擎版本。若是次要版本升級，您可以手動修改引擎版本，或選擇啟用**自動次要版本升級**選項。

**注意**  
資料庫引擎升級需要停機。您可以使用藍/綠部署，將資料庫執行個體升級所需的停機時間降至最低。如需詳細資訊，請參閱[使用 Amazon RDS 藍/綠部署進行資料庫更新](blue-green-deployments.md)。

**Topics**
+ [手動升級引擎版本](#USER_UpgradeDBInstance.Upgrading.Manual)
+ [自動升級次要引擎版本](#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades)

## 手動升級引擎版本
<a name="USER_UpgradeDBInstance.Upgrading.Manual"></a>

若要手動升級資料庫執行個體的引擎版本，您可以使用 AWS 管理主控台 AWS CLI、 或 RDS API。

### 主控台
<a name="USER_UpgradeDBInstance.Upgrading.Manual.Console"></a>

**使用主控台升級資料庫執行個體的引擎版本**

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

1. 在導覽窗格中選擇 **Databases (資料庫)**，然後選擇您要升級的資料庫執行個體。

1. 選擇 **Modify (修改)**。**Modify DB instance (修改資料庫執行個體)** 頁面隨即出現。

1. 在 **DB engine version (資料庫引擎版本)** 中，選擇新版本。

1. 選擇 **Continue (繼續)**，並檢查修改的摘要。

1. 決定何時排程升級：
   + 若要將變更放入待處理修改佇列中，請選擇**在下次排定的維護時段套用**。在下一次維護時段期間，RDS 會套用佇列中的任何待處理變更。
   + 若要立即套用變更，請選擇 **Apply immediately** (立即套用)。在某些情況下，選擇此選項會導致停機。如需更多詳細資訊，請參閱 [使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。

1. 在確認頁面上，檢閱您的變更。如果都正確，請選擇 **Modify DB instance** (修改資料庫執行個體) 以儲存您的變更。

   或者，選擇 **Back (上一步)** 以編輯變更，或是選擇 **Cancel (取消)** 以取消變更。

### AWS CLI
<a name="USER_UpgradeDBInstance.Upgrading.Manual.CLI"></a>

若要升級資料庫執行個體的引擎版本，請使用 CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令。指定下列參數：
+ `--db-instance-identifier` – 資料庫執行個體名稱。
+ `--engine-version` – 會以此資料庫引擎版本編號為目標進行升級。

  如需有效引擎版本的資訊，請使用 AWS CLI [ describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 命令。
+ `--allow-major-version-upgrade` – 升級主要版本。
+ `--no-apply-immediately` – 在下次維護時段套用變更。若要立即套用變更，請使用 `--apply-immediately`。

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

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --engine-version new_version \
4.     --allow-major-version-upgrade \
5.     --no-apply-immediately
```
在 Windows 中：  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --engine-version new_version ^
4.     --allow-major-version-upgrade ^
5.     --no-apply-immediately
```

### RDS API
<a name="USER_UpgradeDBInstance.Upgrading.Manual.API"></a>

若要升級資料庫執行個體的引擎版本，請使用 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 動作。指定下列參數：
+ `DBInstanceIdentifier` – 資料庫執行個體的名稱，例如 *`mydbinstance`*。
+ `EngineVersion` – 會以此資料庫引擎版本編號為目標進行升級。如需有效引擎版本的資訊，請使用 [ DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html) 操作。
+ `AllowMajorVersionUpgrade` – 是否允許主要版本升級。若要這麼做，請設為 `true` 值。
+ `ApplyImmediately` – 指出是否要立即套用變更，或等到下個維護時段再套用。若要立即套用變更，請將值設為 `true`。若要在下一次維護時段套用變更，請將值設為 `false`。

## 自動升級次要引擎版本
<a name="USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades"></a>

自動次要版本升級會定期將資料庫更新為最新的資料庫引擎版本。不過，升級不一定包含最新的資料庫引擎版本。如果您需要在特定時間將資料庫維持在特定版本上，建議您根據所需的排程手動升級至所需的資料庫版本。如果發生重大安全問題或版本達到終止支援的日期，Amazon RDS 可能會套用次要版本升級，即使您尚未啟用**自動次要版本升級**選項，也是如此。如需詳細資訊，請參閱適用於您特定資料庫引擎的升級文件。
+ [RDS for PostgreSQL 的自動次要版本升級](USER_UpgradeDBInstance.PostgreSQL.Minor.md)
+ [RDS for MySQL 的自動次要版本升級](USER_UpgradeDBInstance.MySQL.Minor.md)
+ [RDS for MariaDB 的自動次要版本升級](USER_UpgradeDBInstance.MariaDB.Minor.md)
+ [Oracle 次要版本升級](USER_UpgradeDBInstance.Oracle.Minor.md)
+ [Microsoft SQL Server 資料庫引擎的升級](USER_UpgradeDBInstance.SQLServer.md)
+ [Db2 on Amazon RDS 版本](Db2.Concepts.VersionMgmt.md)

**Topics**
+ [自動次要版本升級的運作方式](#USER_UpgradeDBInstance.Upgrading.scheduled)
+ [開啟自動次要版本升級](#USER_UpgradeDBInstance.Upgrading.turning-on-automatic)
+ [判斷維護更新的可用性](#USER_UpgradeDBInstance.Upgrading.availability)
+ [尋找自動次要版本升級目標](#USER_UpgradeDBInstance.Upgrading.targets)

### 自動次要版本升級的運作方式
<a name="USER_UpgradeDBInstance.Upgrading.scheduled"></a>

*升級目標是* Amazon RDS 將資料庫升級到的資料庫引擎版本。當符合下列條件時，會將次要引擎版本指定為升級目標：
+ 資料庫執行的資料庫引擎次要版本低於目標次要引擎版本。

  您可以透過查看資料庫詳細資訊頁面的**組態**，以尋找目前資料庫執行個體的引擎版本，或是執行 CLI 命令 `describe-db-instances`。
+ 資料庫已啟用自動次要版本升級。

RDS 會將升級排程在維護時段自動執行。在升級期間，RDS 會執行下列動作：

1. 執行系統預先檢查，確定資料庫狀況良好且可以升級

1. 將資料庫引擎升級至目標次要引擎版本

1. 執行升級後任務

1. 將資料庫升級標示為完成

自動升級會導致停機。停機時間的長度取決於多種因素，包括資料庫引擎類型和資料庫的大小。

### 開啟自動次要版本升級
<a name="USER_UpgradeDBInstance.Upgrading.turning-on-automatic"></a>

當您執行以下任務時，您可以控制是否對資料庫執行個體啟用自動次要版本升級：
+ [建立資料庫執行個體](USER_CreateDBInstance.md)
+ [修改資料庫執行個體](Overview.DBInstance.Modifying.md)
+ [建立僅供讀取複本](USER_ReadRepl.Create.md)
+ [從快照還原資料庫執行個體](USER_RestoreFromSnapshot.md)
+ [將資料庫執行個體還原至指定的時間](USER_PIT.md)
+ [從 Amazon S3 匯入資料庫執行個體](MySQL.Procedural.Importing.md) (適用於 Amazon S3 上的 MySQL 備份)

當您執行以下任務時，您可以控制是否對資料庫執行個體啟用自動次要版本升級，方法如下：
+ 使用主控台，設定 **Auto minor version upgrade (自動次要版本升級)** 選項。
+ 使用 AWS CLI設定 `--auto-minor-version-upgrade|--no-auto-minor-version-upgrade`選項。
+ 使用 RDS API，設定 `AutoMinorVersionUpgrade` 參數。

### 判斷維護更新的可用性
<a name="USER_UpgradeDBInstance.Upgrading.availability"></a>

若要判斷資料庫執行個體是否可使用維護更新，例如資料庫引擎版本升級，您可以使用 主控台 AWS CLI或 RDS API。您也可以手動升級資料庫引擎版本，並調整維護時段。如需詳細資訊，請參閱[維持資料庫執行個體](USER_UpgradeDBInstance.Maintenance.md)。

### 尋找自動次要版本升級目標
<a name="USER_UpgradeDBInstance.Upgrading.targets"></a>

您可以使用下列 AWS CLI 命令來判斷特定 中指定次要資料庫引擎版本的目前自動次要升級目標版本 AWS 區域。這個命令可能的 `--engine` 值，列在 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 內 `Engine` 參數的說明中。

針對 Linux、macOS 或 Unix：

```
aws rds describe-db-engine-versions \
--engine engine \
--engine-version minor-version \
--region region \
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \
--output text
```

在 Windows 中：

```
aws rds describe-db-engine-versions ^
--engine engine ^
--engine-version minor-version ^
--region region ^
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^
--output text
```

例如，下列 AWS CLI 命令會判斷美國東部 （俄亥俄） AWS 區域 (us-east-2) 中 MySQL 次要版本 8.0.11 的自動次要升級目標。

針對 Linux、macOS 或 Unix：

```
aws rds describe-db-engine-versions \
--engine mysql \
--engine-version 8.0.11 \
--region us-east-2 \
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \
--output table
```

在 Windows 中：

```
aws rds describe-db-engine-versions ^
--engine mysql ^
--engine-version 8.0.11 ^
--region us-east-2 ^
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^
--output table
```

輸出類似如下。

```
----------------------------------
|    DescribeDBEngineVersions    |
+--------------+-----------------+
|  AutoUpgrade |  EngineVersion  |
+--------------+-----------------+
|  False       |  8.0.15         |
|  False       |  8.0.16         |
|  False       |  8.0.17         |
|  False       |  8.0.19         |
|  False       |  8.0.20         |
|  False       |  8.0.21         |
|  True        |  8.0.23         |
|  False       |  8.0.25         |
+--------------+-----------------+
```

在此範例中，此 `AutoUpgrade` 值 是 `True` (若為 MySQL 版本 8.0.23)。因此，自動次要升級目標是 MySQL 版本 8.0.23，其已在輸出中反白顯示。

**重要**  
如果您打算在不久將 RDS for PostgreSQL 資料庫執行個體遷移至 Aurora PostgreSQL 資料庫叢集，我們強烈建議您在規劃階段的早期關閉資料庫執行個體的自動次要版本升級。如果 RDS for PostgreSQL 版本尚未得到 Aurora PostgreSQL 支援，遷移至 Aurora PostgreSQL 可能會延遲。如需 Aurora PostgreSQL 版本的相關資訊，請參閱 [Amazon Aurora PostgreSQL 的引擎版本](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)。