

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

# 使用僅供讀取複本在升級 RDS for MySQL 資料庫時減少停機時間
<a name="USER_UpgradeDBInstance.MySQL.ReducedDowntime"></a>

在大多數情況下，藍/綠部署是升級 MySQL 資料庫執行個體時減少停機時間的最佳選項。如需詳細資訊，請參閱 [使用 Amazon RDS 藍/綠部署進行資料庫更新](blue-green-deployments.md)。

如果您無法使用藍/綠部署，且您的 MySQL 資料庫執行個體目前與生產應用程式搭配使用，您可以使用下列程序來升級資料庫執行個體的資料庫版本。此程序可降低應用程式的停機時間。

透過使用僅供讀取複本，您可以提前執行大部分的維護步驟，並將實際中斷期間的必要變更降到最低。使用此技術，您可以測試和準備新的資料庫執行個體，而無需對現有的資料庫執行個體進行任何變更。

以下程序顯示從 MySQL 5.7 版升級至 MySQL 8.0 版的範例。您可以使用同樣的一般步驟升級到其他的主要版本。您可以使用同樣的一般步驟升級到其他的主要版本。

**注意**  
當您從 MySQL 5.7 版升級至 MySQL 8.0 版，或從 MySQL 8.0 版升級至 MySQL 8.4 版時，請先完成預先檢查，再執行升級。如需詳細資訊，請參閱[從 MySQL 5.7 升級到 8.0 的前置檢查](USER_UpgradeDBInstance.MySQL.Major.md#USER_UpgradeDBInstance.MySQL.57to80Prechecks)及[從 MySQL 8.0 升級至 8.4 的前置檢查](USER_UpgradeDBInstance.MySQL.Major.md#USER_UpgradeDBInstance.MySQL.80to84Prechecks)。

**在資料庫執行個體處於使用中的情況下升級 MySQL 資料庫**

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

1. 建立 MySQL 5.7 資料庫執行個體的僅供讀取複本。此程序建立資料庫的可升級副本。資料庫執行個體的其他僅供讀取複本也可能存在。

   1. 在主控台中，選擇 **Databases** (資料庫)，然後選擇您要升級的資料庫執行個體。

   1. 在 **Actions** (動作) 中選擇 **Create read replica** (建立僅供讀取複本)。

   1. 在僅供讀取複本的 **DB instance identifier** (資料庫執行個體識別碼) 中提供一個值，並確定 **DB instance class** (資料庫執行個體類別) 和其他設定符合您的 MySQL 5.7 資料庫執行個體。

   1. 選擇 **Create read replica (建立僅供讀取複本)**。

1. (選用) 當僅供讀取複本已建立且**狀態**顯示為**可用**時，請將僅供讀取複本轉換為多可用區域部署，並啟用備份。

   根據預設，僅供讀取複本會在停用備份的情況下建立。由於僅供讀取複本最終會成為生產資料庫執行個體，因此最佳實務是設定多可用區域部署並啟用備份。

   1. 在主控台中，選擇 **Databases** (資料庫)，然後選擇您剛建立的僅供讀取複本。

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

   1. 針對**多可用區域部署**，選擇**建立待命執行個體**。

   1. 對於 **Backup Retention Period** (備份保留期)，選擇非零正值 (例如 3 天)，然後選擇 **Continue** (繼續)。

   1. 在 **Scheduling of modifications** (修改排程) 中，選擇 **Apply immediately** (立即套用)。

   1. 選擇 **Modify DB instance (修改資料庫執行個體)**。

1. 僅供讀取複本的 **Status (狀態)** 顯示為 **Available (可用)** 時，請將僅供讀取複本升級至 MySQL 8.0：

   1. 在主控台中，選擇 **Databases** (資料庫)，然後選擇您剛建立的僅供讀取複本。

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

   1. 在 **DB engine version (資料庫引擎版本)** 中，選擇升級到 MySQL 8.0 版，然後選擇 **Continue (繼續)**。

   1. 在 **Scheduling of modifications** (修改排程) 中，選擇 **Apply immediately** (立即套用)。

   1. 選擇 **Modify DB instance (修改資料庫執行個體)** 以開始升級。

1. 當升級完成且 **Status (狀態)** 顯示為 **Available (可用)** 時，請確認升級的僅供讀取複本已和來源 MySQL 5.7 資料庫執行個體維持在相同的最新狀態。若要驗證，請連線至僅供讀取複本並執行 `SHOW REPLICA STATUS` 命令。如果 `Seconds_Behind_Master` 欄位是 `0`，表示複寫是最新狀態。
**注意**  
MySQL 以前的版本使用 `SHOW SLAVE STATUS` 而不是 `SHOW REPLICA STATUS`。如果您使用的 MySQL 是 8.0.23 之前的版本，請使用 `SHOW SLAVE STATUS`。

1. (選擇性) 建立僅供讀取複本的僅供讀取複本。

   如果您希望資料庫執行個體在提升為獨立資料庫執行個體後擁有僅供讀取複本，您可以立即建立僅供讀取複本。

   1. 在主控台中，選擇 **Databases** (資料庫)，然後選擇您剛升級的僅供讀取複本。

   1. 在 **Actions** (動作) 中選擇 **Create read replica** (建立僅供讀取複本)。

   1. 在僅供讀取複本的 **DB instance identifier** (資料庫執行個體識別碼) 中提供一個值，並確定 **DB instance class** (資料庫執行個體類別) 和其他設定符合您的 MySQL 5.7 資料庫執行個體。

   1. 選擇 **Create read replica (建立僅供讀取複本)**。

1. (選擇性) 為僅供讀取複本設定自訂資料庫參數群組。

   如果您希望資料庫執行個體在提升為獨立資料庫執行個體後使用自訂參數群組，您現在可以建立資料庫參數群組，並將其與僅供讀取複本建立關聯。

   1. 建立 MySQL 8.0 的自訂資料庫參數群組。如需說明，請參閱「[在 Amazon RDS 中建立資料庫參數群組](USER_WorkingWithParamGroups.Creating.md)」。

   1. 修改您想要在剛才建立的資料庫參數群組中變更的參數。如需說明，請參閱「[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)」。

   1. 在主控台中，選擇 **Databases** (資料庫)，然後選擇僅供讀取複本。

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

   1. 對於 **DB parameter group (資料庫參數群組)**，請選擇您剛才建立的 MySQL 8.0 資料庫參數群組，然後選擇 **Continue (繼續)**。

   1. 在 **Scheduling of modifications** (修改排程) 中，選擇 **Apply immediately** (立即套用)。

   1. 選擇 **Modify DB instance (修改資料庫執行個體)** 以開始升級。

1. 將 MySQL 8.0 僅供讀取複本變成獨立資料庫執行個體。
**重要**  
當 MySQL 8.0 僅供讀取複本提升為獨立資料庫執行個體時，就不再是 MySQL 5.7 資料庫執行個體的複本。建議在維護時段提升 MySQL 8.0 僅供讀取複本，因為此時來源 MySQL 5.7 資料庫執行個體處於唯讀模式，且所有寫入操作都已暫停。提升完成時，您可以將寫入操作導向已升級的 MySQL 8.0 資料庫執行個體，以確保不會遺漏任何寫入操作。  
此外，在提升 MySQL 8.0 僅供讀取複本之前，建議您在 MySQL 8.0 僅供讀取複本上執行所有必要的資料定義語言 (DDL) 操作。範例是建立索引。此方法可避免 MySQL 8.0 僅供讀取複本在提升之後效能降低。若要提升僅供讀取複本，請使用以下程序。

   1. 在主控台中，選擇 **Databases** (資料庫)，然後選擇您剛升級的僅供讀取複本。

   1. 針對 **Actions** (動作)，選擇 **Promote** (提升)。

   1. 選擇 **Yes (是)**，對僅供讀取複本執行個體啟用自動備份。如需詳細資訊，請參閱 [備份簡介](USER_WorkingWithAutomatedBackups.md)。

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

   1. 選擇 **Promote Read Replica** (提升僅供讀取複本)。

1. 您現在已升級 MySQL 資料庫的版本。此時，您可以將應用程式導向至新的 MySQL 8.0 資料庫執行個體。