我想對在使用藍/綠部署升級 Amazon Aurora MySQL 相容版本資料庫時遇到的錯誤進行疑難排解。
簡短描述
如果您使用藍/綠部署來升級 Aurora MySQL 相容版資料庫,則您的部署可能會顯示升級狀態為「無效組態」。若要取得此問題的更多資訊,請檢查寫入執行個體的日誌與事件,尋找以下訊息:
「Failed to provision due to upgrade incompatibilities.」
若要解決此問題,請完成以下疑難排解步驟。
解決方法
準備藍/綠部署
為減少藍/綠部署的問題,請完成以下最佳實務來準備部署:
- 檢查 Aurora MySQL 版本相容性矩陣,以確保您可以使用藍/綠部署將目前版本升級至目標版本。如需更多資訊,請參閱檢查 Aurora MySQL 版本號碼。
- 評估您的應用程式在切換期間處理短暫中斷的能力。您也可以在應用程式程式碼中實作連線重試邏輯,以協助切換過程。如需如更多資訊,請參閱藍/綠部署一般最佳實務。
- 檢查所有組態設定,以確保目前版本與目標版本相容。
- 建立目前資料庫的備份,以確保需要時可以回復。
執行藍/綠部署
請在部署期間完成以下任務:
- 使用 Amazon CloudWatch 指標、Amazon EventBridge與日誌監控升級進度。
- 如果你在相同的主要版本內升級到較新的次要版本,請在綠色叢集上使用使用升級功能。此功能可讓您在完成切換過程前達到最新修補版本。
- 在您確認綠色環境已準備就緒且綠色叢集沒有複本延遲後,請在計劃的維護時段內完成切換。
如果在切換過程中轉換操作停滯或變慢,請檢查錯誤日誌以尋找特定的錯誤訊息或瓶頸。您可以指定轉換逾時期間,介於 30 秒至 3,600 秒 (1 小時) 之間。如果轉換操作超過指定的時間,Aurora 將回復變更,並且不會更動任何環境。
**注意:**預設逾時期間為 300 秒 (5 分鐘)。
使用替代升級方式
對於某些升級,例如從 Aurora Serverless v1 升級到 Aurora Serverless v2,您無法使用藍綠部署程序。若要解決此問題,請使用下列其中一種方法:
使用讀取副本
請執行以下動作:
- 建立 Aurora Serverless v1 叢集的讀取複本。
- 將叢集的讀取複本升級至 Aurora Serverless v2。
- 將讀取複本更新為主要叢集。
如需更多資訊,請參閱從 Aurora Serverless v1 叢集升級至 Aurora Serverless v2。
使用快照還原
請執行以下動作:
- 建立 Aurora Serverless v1 叢集的快照。
- 將快照還原到新的 Aurora Serverless v2 叢集。
- 更新您的應用程式以指向新的 v2 叢集。
升級後檢查組態
完成叢集升級後,確認所有資料庫功能、儲存程序及應用程式查詢如預期運作。在升級後的 24 至 48 小時內 (包括尖峰時段),監控效能指標,以確保沒有出現任何預期外的效能影響。
其他疑難排解步驟
相容性錯誤
如果目前資料庫組態使用的設定或功能與目標資料庫不相容,那麼您會收到以下錯誤訊息:
「Failed to provision due to upgrade incompatibilities.See https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.mysql80-upgrade-procedure.html#AuroraMySQL.mysql80-upgrade-troubleshooting to resolve these issues, then delete and recreate this Blue/Green Deployment.」
若要解決此錯誤,請完成以下步驟:
- 檢查 Aurora MySQL 相容資料庫中的 upgrade-prechecks.log 檔案。
- 處理日誌檔中發現的相容性問題。如需更多資訊,請參閱 社群版 MySQL 升級預先檢查摘要與 Aurora MySQL 升級預先檢查摘要。
- 刪除藍/綠部署。
- 重新建立藍/綠部署。
參數相容性錯誤
如果您的綠色叢集處於不相容參數狀態且非可用狀態,則表示現有叢集參數或執行個體參數值與目標版本不相容。
若要解決此錯誤,請完成以下步驟:
-
重設叢集參數群組與執行個體參數值。
-
若要將綠色叢集提升為獨立叢集,請執行 promote-read-replica-db-cluster 命令:
aws rds promote-read-replica-db-cluster --db-cluster-identifier <Green Cluster>
-
刪除叢集與執行個體。
-
檢查現有叢集參數值與目標版本的相容性。或在藍色叢集上切換為預設值。然後在切換至綠色叢集時,逐一修改參數值。
-
確認參數後,建立新的藍/綠環境。
疑難排解停滯的升級
您的綠色叢集可能因以下原因在升級過程中停滯:
- 目標版本不相容
- 藍色叢集上長時間執行的交易阻礙了綠色叢集的升級程序
若要解決該錯誤,請完成下列任務:
- 檢查升級後的版本是否支援直接升級至目標版本。
- 如果不支援該版本,請還原變更並刪除藍綠部署。
- 升級到建議的中間版本。最後,升級至最終版本。
您也可以監控藍色叢集中執行時間較長的交易。如果有執行時間較長的交易,請完成或終止這些交易。然後重試升級程序。
相關資訊
如何將 Amazon Aurora MySQL 資料庫叢集升級至新版本?
升級至 Amazon Aurora MySQL 版本 3 (具有 MySQL 8.0 相容性)
以最短停機時間執行 Amazon Aurora MySQL 的主要版本升級
升級 Amazon Aurora MySQL 資料庫叢集的主要版本