我想要以最短的停機時間升級 Amazon Relational Database Service (Amazon RDS) for MySQL 的資料庫引擎版本。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱AWS CLI 錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
升級 Amazon RDS for MySQL 的資料庫引擎版本
若要將 Amazon RDS 資料庫引擎升級至主要版本,您必須手動使用 AWS 管理主控台、AWS CLI 或 RDS API。如需更多資訊,請參閱手動升級引擎版本。
若要自動將 Amazon RDS 資料庫引擎升級至次要版本,請參閱自動升級次要引擎版本。
將 Amazon RDS for MySQL 資料庫引擎升級的停機時間降到最低的最佳實務
估算升級時間
升級時間取決於升級類型、資料以及可用資源。若要估算升級時間,請在個別的測試資料庫執行個體上測試升級。若要為主要或次要升級啟動測試資料庫執行個體,請使用快照還原或讀取複本。如需更多資訊,請參閱 RDS for MySQL DB 引擎的升級。
若要將升級停機時間降到最低,請使用藍/綠部署進行資料庫更新。藍/綠部署會建立一個複製生產環境的預備環境。您可以在綠色環境中升級 Amazon RDS 資料庫執行個體,而不影響生產工作負載。接著,在測試完成後切換環境。
資料庫備份的影響
當您啟用備份時,Amazon RDS 會在所有版本升級期間擷取資料庫執行個體先前版本的快照。如果 Amazon RDS 找不到任何最近的備份,Amazon RDS 會在升級程序期間擷取完整快照。變更的大小會影響升級時間。當 Amazon RDS 擷取快照時,資料庫執行個體可以持續接受流量。備份完成後,資料庫執行個體會關閉。接著,MySQL 會在停用的網路上執行新的引擎版本,以防止任何遠端連線。
緩慢關閉的影響
若要採用緩慢關閉,Amazon RDS 會將 innodb_fast_shutdown 參數值設定為 0。在緩慢關閉期間,Amazon RDS 會合併變更緩衝區並對已刪除的資料列執行完整清除。根據復原的資料量,緩慢關閉可能需要數分鐘到數小時。具有大型變更緩衝區或較長歷史清單的資料庫,其緩慢關閉可能需要更長時間。如需更多資訊,請參閱 MySQL 網站上的 緩慢關閉、innodb_fast_shutdown、變更緩衝區以及清除。
系統與使用者資料表轉換為新版本
若要將系統與使用者資料表轉換為新版本,MySQL 二進位檔 mysql_upgrade 會在 MySQL 資料庫上執行。根據資料表的狀態,您可能需要重新建立資料表以符合新版本。mysql_upgrade 二進位檔會更新資料表中的中繼資料,並顯示資料庫已完成升級。如果您有大量資料表,Amazon RDS for MySQL 可能需要較長時間才能完成主要版本升級。如需更多資訊,請參閱 MySQL 網站上的 mysql_upgrade — 檢查並升級 MySQL 資料表。
MySQL 升級的考量事項
在從 8.0 升級至 8.4 的主要版本升級期間,Amazon RDS for MySQL 會重新建置部分資料表。根據資料表中的資料量,重新建置可能需要數小時或數天才能完成。
MySQL 主要版本之間不相容可能在升級時造成問題。為了成功完成升級,最佳實務是檢閱 MySQL 升級的考量事項。當您從 MySQL 5.7 開始升級至 8.0 時,Amazon RDS 會自動執行預先檢查以偵測不相容性。如需更多資訊,請參閱 MySQL 網站上的升級 MySQL。
準備回復計畫
對於從 MySQL 8.0 進行的升級,Amazon RDS 會執行預先檢查以確認有足夠的儲存空間可重新建置資料表。Amazon RDS 也會確認不存在孤立資料表。Amazon RDS 不會對早於 MySQL 5.7 的版本升級執行預先檢查。最佳實務是在可能發生主要版本升級失敗時,準備一份升級失敗並回復的應變計畫。
檢查資料表問題
若要檢查資料表是否存在問題,最佳實務是執行 mysqlcheck。最佳實務是在還原的快照上測試資料表維護作業。如需更多資訊,請參閱 MySQL 網站上的 mysqlcheck — 資料表維護程式。
相關資訊
升級 DB 執行個體引擎版本
升級 Amazon RDS for MySQL 與 Amazon RDS for MariaDB 的最佳實務
Amazon RDS 上的 MySQL 版本