藍/綠部署的最佳實務 - Amazon Aurora

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

藍/綠部署的最佳實務

以下是藍/綠部署的最佳作法。

一般最佳實務

  • 切換前,請在綠色環境中徹底測試 Aurora 資料庫叢集

  • 在綠色環境中將您的資料庫保留唯讀狀態。建議您在綠色環境上小心啟用寫入操作,因為它們可能會在綠色環境中造成複寫衝突。它們也可能會在切換後於生產資料庫中產生非預期的資料。

  • 使用藍/綠部署實作結構描述變更時,請僅進行複寫相容的變更。

    例如,您可以在資料表結尾新增資料欄,而不會中斷從藍色部署到綠色部署的複寫。不過,結構描述變更 (例如重新命名資料欄或重新命名資料表) 會中斷綠色部署的複寫。

    如需有關複寫相容變更的詳細資訊,請參閱 Postgre SQL 邏輯複寫文件中的我的SQL文件和限制中的對來源和複本的不同表格定義進行複寫。

  • 針對兩個環境中的所有連線,使用叢集端點、讀取器端點或自訂端點。請不要搭配靜態或排除清單使用執行個體端點或自訂端點。

  • 當您切換藍/綠部署時,請遵循切換最佳實務。如需詳細資訊,請參閱切換最佳實務

的最佳做法

  • 監控 Aurora Postgre SQL 邏輯複寫寫式快取,並在必要時調整快取緩衝區。如需詳細資訊,請參閱監視 Aurora 波斯特雷SQL邏輯複寫寫快取

  • 如果您的資料庫有足夠的可釋放記憶體,請在藍色環境中增加 logical_decoding_work_mem DB 參數的值。這樣做允許減少磁碟上的解碼,並改用記憶體。您可以使用FreeableMemory CloudWatch 指標監視可用內存。如需詳細資訊,請參閱Amazon Aurora 的 Amazon CloudWatch 指標

  • 在建立藍/綠部署之前,請先將所有 Postgre SQL 擴充功能更新為最新版本。如需詳細資訊,請參閱升級後擴充套件 SQL

  • 如果您使用aws_s3擴充功能,請務必在建立綠色環境後透過IAM角色授予綠色資料資料庫叢集存取 Amazon S3。這允許匯入和匯出命令在轉換之後繼續運作。如需說明,請參閱 設定對 Amazon S3 儲存貯體的存取權

  • 如果您為綠色環境指定較高的引擎版本,請在所有資料庫上執行ANALYZE作業以重新整理資料pg_statistic表。主要版本升級期間不會傳輸最佳化處理程式統計資料,因此您必須重新產生所有統計資料,以避免效能 如需主要版本升級期間的其他最佳作法,請參閱。

  • 避免將觸發器設定為ENABLE REPLICAENABLE ALWAYS是在來源上使用觸發器來操作資料。否則,複製系統會傳播變更並執行觸發程序,從而導致重複。

  • 長時間執行的交易可能會導致重大複本延遲 若要減少複本延遲,請考慮執行下列動作:

    • 減少可以延遲到綠色環境趕上藍色環境之後的長時間運行的事務。

    • 在建立藍/綠部署之前,在忙碌的資料表上啟動手動真空凍結作業。

    • 對於 Postgre SQL 版本 12 及更新版本,請停用大型或忙碌資料表上的index_cleanup參數,以提高藍色資料庫的正常維護速率。

  • 緩慢複寫可能會導致寄件者和接收者經常重新啟動,進而延遲同步處理 若要確保它們保持作用中狀態,請在藍色環境0中將wal_sender_timeout參數設定為,並在綠色環境0中將wal_receiver_timeout參數設定為來停用逾時。

  • 如果在來源資料庫叢集上啟用了 Babelfish,則下列參數在綠色環境的目標資料庫叢集參數群組中必須具有與來源資料庫叢集參數群組中相同的設定值:

    • rds.babelfish_status

    • babelfishpg_tds.tds_default_numeric_precision

    • babelfishpg_tds.tds_default_numeric_scale

    • babelfishpg_tsql.default_locale

    • babelfishpg_tsql.migration_mode

    • babelfishpg_tsql.server_collation_name

    如需這些參數的相關資訊,請參閱 Babelfish 的資料庫叢集參數群組設定