升級 RDS for MySQL 資料庫時,使用僅供讀取複本來減少停機時間 - Amazon Relational Database Service

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

升級 RDS for MySQL 資料庫時,使用僅供讀取複本來減少停機時間

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

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

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

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

注意

當您從 MySQL 5.7 版升級至 MySQL 8.0 版,或從 MySQL 8.0 版升級至 MySQL 8.4 版時,請先完成預先檢查,再執行升級。如需詳細資訊,請參閱 從 MySQL 5.7 升級至 8.0 的預先檢查從 MySQL 8.0 升級至 8.4 的預先檢查

在使用資料庫執行個體時升級 MySQL 資料庫
  1. 登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

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

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

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

    3. 為您的僅供讀取複本提供資料庫執行個體識別符的值,並確保資料庫執行個體類別和其他設定與您的 MySQL 5.7 資料庫執行個體相符。

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

  3. (選擇性) 當僅供讀取複本已建立且 Status (狀態) 顯示 Available (可用) 時,請將僅供讀取複本轉換為異地同步備份部署並啟用備份。

    依預設,僅供讀取複本會建立為單一可用區域部署,並停用備份。由於僅供讀取複本最終會成為生產資料庫執行個體,因此最佳實務是設定多可用區部署並立即啟用備份。

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

    2. 選擇 Modify (修改)

    3. 對於 Multi-AZ deployment (異地同步備份部署),請選擇 Create a standby instance (建立待命執行個體)

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

    5. Scheduling of modifications (修改排程) 中,選擇 Apply immediately (立即套用)。

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

  4. 當僅供讀取複本狀態顯示可用時,將僅供讀取複本升級至 MySQL 8.0:

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

    2. 選擇 Modify (修改)

    3. 對於資料庫引擎版本,選擇要升級到的 MySQL 8.0 版本,然後選擇繼續

    4. Scheduling of modifications (修改排程) 中,選擇 Apply immediately (立即套用)。

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

  5. 升級完成且狀態顯示可用時,請確認升級的僅供讀取複本與來源 MySQL 5.7 資料庫執行個體 up-to-date搭配使用。若要驗證,請連線至僅供讀取複本並執行 SHOW REPLICA STATUS 命令。如果 Seconds_Behind_Master 欄位為 0,則複寫為 up-to-date。

    注意

    先前使用的 MySQL 版本SHOW SLAVE STATUS,而非 SHOW REPLICA STATUS。如果您使用的是 8.0.23 之前的 MySQL 版本,請使用 SHOW SLAVE STATUS

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

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

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

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

    3. 為您的僅供讀取複本提供資料庫執行個體識別符的值,並確保資料庫執行個體類別和其他設定與您的 MySQL 5.7 資料庫執行個體相符。

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

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

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

    1. 為 MySQL 8.0 建立自訂資料庫參數群組。如需說明,請參閱 在 Amazon RDS Amazon 中創建數據庫參數組

    2. 修改您想要在剛才建立的資料庫參數群組中變更的參數。如需說明,請參閱「修改 Amazon RDS Amazon 數據庫參數組中的參數」。

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

    4. 選擇 Modify (修改)

    5. 針對資料庫參數群組,選擇您剛建立的 MySQL 8.0 資料庫參數群組,然後選擇繼續

    6. Scheduling of modifications (修改排程) 中,選擇 Apply immediately (立即套用)。

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

  8. 將您的 MySQL 8.0 僅供讀取複本設為獨立資料庫執行個體。

    重要

    當您將 MySQL 8.0 僅供讀取複本提升為獨立資料庫執行個體時,不再是 MySQL 5.7 資料庫執行個體的複本。當您的來源 MySQL 5.7 資料庫執行個體處於唯讀模式且所有寫入操作都暫停時,建議您在維護時段期間提升 MySQL 8.0 僅供讀取複本。提升完成後,您可以將寫入操作導向至升級的 MySQL 8.0 資料庫執行個體,以確保不會遺失寫入操作。

    此外,我們建議您在提升 MySQL 8.0 僅供讀取複本之前,先在 MySQL 8.0 僅供讀取複本上執行所有必要的資料定義語言 (DDL) 操作。範例是建立索引。此方法可避免 My 8.0 僅供讀取複本在提升後對效能SQL造成負面影響。若要提升僅供讀取複本,請使用以下程序。

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

    2. 針對 Actions (動作),選擇 Promote (提升)。

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

    4. 選擇 Continue (繼續)

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

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