如何在最短的停機時間下執行 Amazon RDS for MySQL 版本升級?

1 分的閱讀內容
0

我想以最短的停機時間,執行 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 或 Amazon RDS API。如需詳細資訊,請參閱升級 MySQL 資料庫引擎

Amazon RDS for MySQL 升級時間

升級時間取決於升級類型、資料和可用資源。若要估算升級時間,請在單獨的測試執行個體上測試升級。若要啟動主要或次要升級的測試執行個體,請使用快照還原或讀取複本。如需詳細資訊,請參閱 MySQL 的主要版本升級MySQL 的自動次要版本升級。若要將升級停機時間降至最低,請使用藍/綠部署進行資料庫更新

開啟備份時,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_upgrade 程式會更新資料表中的中繼資料。如果您的資料表數量較大,則 Amazon RDS for MySQL 可能需要更長時間才能完成主要版本升級。如需詳細資訊,請參閱 mysql_upgrade: 檢查並升級 MySQL 網站上的 MySQL 資料表

主要升級到 5.7 版的期間,Amazon RDS for MySQL 會重建您的某些資料表。所有日期和時間欄位類型都會轉換為新格式。根據資料表中的資料量,轉換可能需要幾個小時到幾天。

MySQL 5.7 至 MySQL 8.0 之間的不相容性可能會在升級時造成問題。為了成功升級,最佳做法是準備您的資料庫。 當您開始從 MySQL 5.7 升級至 8.0 時,Amazon RDS 會自動執行前置檢查以偵測不相容性。如需詳細資訊,請參閱 MySQL 網站上的第 3 章:升級 MySQL

若要從 MySQL 5.6 升級至 MySQL 5.7,Amazon RDS 會執行前置檢查,以確認有足夠的儲存空間來重建資料表。Amazon RDS 也會確認沒有孤立資料表。針對 MySQL 5.7 之前的版本,Amazon RDS 不會執行升級的前置檢查。針對潛在的主要版本升級失敗,最佳做法是建立復原計劃。

若要檢查資料表中的問題,最佳做法是執行 mysqlcheck。但是,資料表維護作業可能會耗用大量的時間和資源。如需詳細資訊,請參閱 mysqlcheck: MySQL 網站上的資料表維護程式。

相關資訊

升級資料庫執行個體引擎版本

升級 Amazon RDS for MySQL 和 Amazon RDS for MariaDB 的最佳實務

Amazon RDS 上的 MySQL 版本

AWS 官方
AWS 官方已更新 2 個月前