

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

# RDS for MySQL 資料庫引擎的升級
<a name="USER_UpgradeDBInstance.MySQL"></a>

當 Amazon RDS 支援新版本的資料庫引擎時，您可以將資料庫執行個體升級為新版本。MySQL 資料庫有兩種升級︰主要版本升級和次要版本升級。

**主要版本升級**  
*主要版本升級* 可能包含與現有應用程式回溯不相容的資料庫變更。因此，您必須手動執行資料庫執行個體的主要版本升級。您可以修改資料庫執行個體，啟動主要版本升級。在您執行主要的版本升級之前，建議您依照 [RDS for MySQL 的主要版本升級](USER_UpgradeDBInstance.MySQL.Major.md) 中的指示操作。  
對於多可用區域資料庫執行個體部署的主要版本升級，Amazon RDS 會同時升級主要和待命複本。在升級完成之前，您的資料庫執行個體將無法使用。對於多可用區域資料庫叢集部署的主要版本升級，Amazon RDS 會逐一升級叢集成員執行個體。  
您可以使用藍/綠部署，將主要版本升級所需的停機時間降至最低。如需詳細資訊，請參閱[使用 Amazon RDS 藍/綠部署進行資料庫更新](blue-green-deployments.md)。

**次要版本升級**  
*次要版本升級*僅包含與現有應用程式回溯相容的變更。您可以修改資料庫執行個體，手動啟動次要版本升級。或者，您也可以在建立或修改資料庫執行個體時啟用**自動次要版本升級**選項。這麼做代表 Amazon RDS 會在測試並核准新版本後自動升級您的資料庫執行個體。如需執行升級的相關資訊，請參閱[升級資料庫執行個體 引擎版本](USER_UpgradeDBInstance.Upgrading.md)。  
當您執行多可用區域資料庫叢集的次要版本升級時，Amazon RDS 會逐一升級讀取器資料庫執行個體。然後，其中一個讀取器資料庫執行個體會切換為新的寫入器資料庫執行個體。Amazon RDS 接著會升級舊的寫入器執行個體 (現在是讀取器執行個體)。  
多可用區域資料庫*執行個體*部署的次要版本升級停機時間可能持續數分鐘。多可用區域資料庫叢集通常可將次要版本升級的停機時間縮短到約 35 秒。與 RDS Proxy 搭配使用時，您可以進一步將停機時間縮短至一秒或更短。如需詳細資訊，請參閱[Amazon RDS Proxy](rds-proxy.md)。或者，您可以使用開放原始碼資料庫代理，例如 [ProxySQL](https://aws.amazon.com/blogs/database/achieve-one-second-or-less-of-downtime-with-proxysql-when-upgrading-amazon-rds-multi-az-deployments-with-two-readable-standbys/)、[PgBouncer](https://aws.amazon.com/blogs/database/fast-switchovers-with-pgbouncer-on-amazon-rds-multi-az-deployments-with-two-readable-standbys-for-postgresql/) 或 [AWS 進階 JDBC 包裝函式驅動程式](https://aws.amazon.com/blogs/database/achieve-one-second-or-less-downtime-with-the-advanced-jdbc-wrapper-driver-when-upgrading-amazon-rds-multi-az-db-clusters/)。

Amazon RDS 也支援升級推展政策，以管理跨多個資料庫資源和 的自動次要版本升級 AWS 帳戶。如需詳細資訊，請參閱[使用 AWS Organizations 升級推展政策進行自動次要版本升級](RDS.Maintenance.AMVU.UpgradeRollout.md)。

如果 MySQL 資料庫執行個體使用僅供讀取複本，您就必須在升級來源執行個體之前，先升級所有僅供讀取複本。

**Topics**
+ [MySQL 升級考量](#USER_UpgradeDBInstance.MySQL.Considerations)
+ [尋找有效的升級目標](#USER_UpgradeDBInstance.MySQL.FindingTargets)
+ [MySQL 版本號碼](USER_UpgradeDBInstance.MySQL.VersionID.md)
+ [RDS for MySQL 中的 RDS 版本號碼](USER_UpgradeDBInstance.MySQL.rds.version.md)
+ [RDS for MySQL 的主要版本升級](USER_UpgradeDBInstance.MySQL.Major.md)
+ [測試 RDS for MySQL 升級](USER_UpgradeDBInstance.MySQL.UpgradeTesting.md)
+ [升級 MySQL 資料庫執行個體](#USER_UpgradeDBInstance.MySQL.Upgrading)
+ [RDS for MySQL 的自動次要版本升級](USER_UpgradeDBInstance.MySQL.Minor.md)
+ [使用僅供讀取複本在升級 RDS for MySQL 資料庫時減少停機時間](USER_UpgradeDBInstance.MySQL.ReducedDowntime.md)
+ [使用事件監控 RDS for MySQL 引擎升級](USER_UpgradeDBInstance.MySQL.Monitoring.md)

## MySQL 升級考量
<a name="USER_UpgradeDBInstance.MySQL.Considerations"></a>

Amazon RDS 在升級過程中會建立兩個以上的資料庫快照。Amazon RDS 在進行任何升級變更*之前*，最多會建立兩個資料庫執行個體快照。如果升級對資料庫沒有用處，您可以還原其中一個快照，以建立執行舊版本的資料庫執行個體。升級完成時，Amazon RDS 會建立資料庫執行個體的另一個快照。無論 是否 AWS Backup 管理資料庫執行個體的備份，Amazon RDS 都會拍攝這些快照。

**注意**  
只在您將資料庫執行個體的備份保留期設為大於 0 的數字時，Amazon RDS 才會建立資料庫快照。若要變更備份保留期，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

升級完成之後，您就無法回復至前一版的資料庫引擎。如果您想要回到前一版，請還原第一個建立的資料庫快照，以建立新的資料庫執行個體。

您可以控制何時將資料庫執行個體升級至 Amazon RDS 支援的新版本。這一層控制協助您維持與特定資料庫版本的相容性，並且先在您的應用程式上測試新版本，再部署於生產環境。準備好時，您就可以在最適合排程的時間執行版本升級。

如果資料庫執行個體使用讀取複寫，您就必須在升級來源執行個體之前，先升級所有僅供讀取複本。

## 尋找有效的升級目標
<a name="USER_UpgradeDBInstance.MySQL.FindingTargets"></a>

當您使用 AWS 管理主控台 來升級資料庫執行個體時，會顯示資料庫執行個體的有效升級目標。您也可以執行下列 AWS CLI 命令來識別資料庫執行個體的有效升級目標：

針對 Linux、macOS 或 Unix：

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

在 Windows 中：

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

例如，若要識別 MySQL 8.0.28 版資料庫執行個體的有效升級目標，請執行下列 AWS CLI 命令：

針對 Linux、macOS 或 Unix：

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

在 Windows 中：

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

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

如需有關手動或自動升級 MySQL 資料庫執行個體的資訊，請參閱[升級資料庫執行個體 引擎版本](USER_UpgradeDBInstance.Upgrading.md)。