藍/綠部署的限制和考量 - Amazon Aurora

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

藍/綠部署的限制和考量

Amazon 的藍/綠部署RDS需要仔細考量複寫插槽、資源管理、執行個體大小以及對資料庫效能的潛在影響等因素。下列各節提供指引,協助您最佳化部署策略,以確保最短的停機時間、順暢轉換,以及有效管理資料庫環境。

藍/綠部署的限制

下列限制適用於藍/綠部署。

藍/綠部署的一般限制

下列一般限制適用於藍/綠部署:

  • 您無法停止和啟動屬於藍/綠部署一部分的叢集。

  • 藍色/綠色部署不支援管理主要使用者密碼 AWS Secrets Manager.

  • 如果您嘗試在藍色資料庫叢集上強制回溯,藍/綠部署會中斷,而且會封鎖切換。

  • 在轉換期間,藍色和綠色環境無法與 Amazon Redshift 進行零ETL整合。您必須先刪除整合再進行切換,然後重新建立整合。

  • 建立藍/綠部署時,必須在綠色環境上停用事件排程器 (event_scheduler 參數)。這樣可以防止在綠色環境中產生事件並導致不一致。

  • 在藍色資料庫叢集上定義的任何 Aurora Auto Scaling 政策都不會複製到綠色環境。

  • 您無法將未加密的資料庫叢集變更為加密的資料庫叢集。此外,您無法將加密的資料庫叢集變更為未加密的資料庫叢集

  • 您無法將藍色資料庫叢集變更為比對應的綠色資料庫叢集更高的引擎版本。

  • 藍色環境和綠色環境中的資源必須相同 AWS 帳戶.

  • 下列功能不支援藍/綠部署:

    • Amazon RDS 代理

    • 跨區域僅供讀取複本

    • Aurora Serverless v1 資料庫叢集

    • 屬於 Aurora 全域資料庫的資料庫叢集。

    • AWS CloudFormation

Aurora 我SQLRDS的我藍色/綠色部署SQL限制

下列限制適用於「我的SQL藍/綠」部署:

  • Aurora 我的SQL版本 2.08 和 2.09 不支援做為升級來源或目標版本。

  • 來源資料庫叢集不能包含任何名為tmp. 具有此名稱的資料庫不會複製到綠色環境。

  • 藍色資料庫叢集不能是外部 binlog 複本。

  • 如果已啟用回溯的來源資料庫叢集,則會建立綠色資料庫叢集而不支援回溯。這是因為回溯不適用於藍/綠部署所需的二進位記錄 (binlog) 複寫。如需詳細資訊,請參閱恢復 Aurora 資料庫叢集

  • 藍/綠部署不支援 AWS JDBC我的驅動程序SQL。如需詳細資訊,請參閱的已知限制 GitHub。

藍色/綠色部署SQL限制的 Aurora

下列限制適用於SQL藍色/綠色部署:

  • 下列版本的 Aurora Postgre SQL RDS 的支援作為升級來源和目標版本:11.21 及更高版本、12.16 及更高版本、13.12 及更高版本、14.9 及更高版本、15.4 及更高版本,以及 16.1 及更高版本。對於較低版本,您可以對支援的版本執行次要版本升級。

  • 除非1在藍色資料庫叢集上將rds.logically_replicate_unlogged_tables參數設定為,否則未記錄的資料表不會複寫到綠色環境。建議您在建立藍/綠部署之後不要修改此參數值,以避免可能在未記錄的資料表上發生複寫錯誤

  • 藍色資料庫叢集不能是自我管理邏輯來源 (發行者) 或複本 (訂閱者)。

  • 如果藍色資料個體資料庫叢集設定為外部資料包裝函式 (FDW) 延伸模組的外部伺服器,您必須使用叢集端點名稱而非 IP 位址。這可讓組態在轉換之後保持運作狀態。

  • 在藍/綠部署中,每個資料庫都需要一個邏輯複寫插槽。隨著資料庫數量的增加,資源額外負荷會增加,並且可能導致複寫延遲,尤其是在資料庫叢集資料未充分擴展的情況下。影響視資料庫工作負載和連線數等因素而定。為了減輕此問題,請考慮擴展您的資料庫執行個體類別,或減少來源叢集個體上的資料庫數量。

  • 建立藍/綠部署時,必須在藍色環境上停用 pg_partman 延伸模組。擴充功能會DDL執行例如CREATE TABLE,中斷從藍色環境到綠色環境的邏輯複寫的作業。

  • 建立藍/綠部署之後,所有綠色資料庫上的 pg_cron 延伸模組必須保持停用狀態。延伸模組具有以超級使用者身分執行的背景工作者,且會略過綠色環境的唯讀設定,這可能會造成複寫衝突。

  • apg_plan_mgmt 延伸模組必須在所有綠色資料庫上將 apg_plan_mgmt.capture_plan_baselines 參數設定為 off,以避免在藍色環境中擷取相同的計劃時,發生主索引鍵衝突。如需詳細資訊,請參閱Aurora 郵政SQL查詢計劃管理概述

    如果想要在 Aurora 複本中擷取執行計劃,您必須在呼叫 apg_plan_mgmt.create_replica_plan_capture 函數時提供藍色資料庫叢集端點。這可確保計劃擷取在轉換之後繼續運作。如需詳細資訊,請參閱在副本中捕獲 Aurora 後SQL執行計劃

  • 建立藍/綠部署時,必須在藍色環境上停用 pglogicalpgactive 延伸模組。將綠色環境提升為新的生產環境後,您可以再次啟用擴充功能。此外,藍色資料庫不能是外部執行個體的邏輯訂閱者。

  • 如果您使用pgAudit擴充功能,它必須保留在藍色和綠色資shared_preload_libraries料庫執行個體的自訂資料庫參數群組上的共用程式庫 () 中。如需詳細資訊,請參閱設定 pgAudit 擴充功能

藍/綠部署的SQL發生邏輯複製限制

藍/綠部署會使用邏輯複寫,讓預備環境與生產環境保持同步。Postgre SQL 具有與邏輯複寫相關的某些限制,這轉化為針對 Postgre 資料庫執行個體為 Aurora Postgre SQL 資料庫叢集建立藍/綠部署時限制。SQL

限制 說明
資料定義語言 (DDL) 陳述式 (例如CREATE TABLECREATE SCHEMA) 不會從藍色環境複製到綠色環境。

如果 Aurora 在藍色環境中RDS偵測到DDL變更,則您的綠色資料庫會進入降級的複寫狀態。

您會收到一個事件,通知您藍色環境中的DDL變更無法複製到綠色環境。您必須刪除藍/綠部署和所有綠色資料庫,然後重新建立該部署。否則,您將無法轉換藍/綠部署。

序列物件上的 NEXTVAL 作業不會在藍色環境與綠色環境之間同步。

在轉換期間,Aurora 會在綠色環境中RDS遞增序列值,以符合藍色環境中的序列值。如果您有數千個序列,這可能會延遲轉換。

藍色環境中的大型物件建立或修改並不會複寫到綠色環境。

如果 Aurorapg_largeobject系統表格中存放的藍色環境中RDS偵測到大型物件的建立或修改,則您的綠色資料庫將進入複寫降級狀態。

Aurora 會產生一個事件,通知您藍色環境中的大型物件變更無法複製到綠色環境。您必須刪除藍/綠部署和所有綠色資料庫,然後重新建立該部署。否則,您將無法轉換藍/綠部署。

具體化視觀表不會在綠色環境中自動重新整理。

在藍色環境中重新整理具體化視觀表不會在綠色環境中重新整理這些視觀表。切換後,您可以使用REFRESHMATERIALIZEDVIEW指令手動重新整理它們,或排程重新整理。

UPDATE並且不允許在沒有主鍵的表上進DELETE行操作。

在建立藍/綠部署之前,請確定資料庫叢集中的所有資料表都有主索引鍵。

如需詳細資訊,請參閱 Postgre SQL 邏輯複寫說明文件中的限制

藍/綠部署考量

Amazon 會使用每個資源DbClusterResourceIdDbiResourceId和RDS追蹤藍/綠部署的資源。此資源 ID 為 AWS 區域-資源的唯一不可變標識符。

ID 與資料庫叢集 ID 不同。每一個都會列在RDS主控台的資料庫組態中。

當您切換藍/綠部署時,資源的名稱 (叢集 ID) 會變更,但每個資源都保留相同的資源 ID。例如,資料庫叢集識別符可能已是藍色環境中的 mycluster。切換後,相同的資料庫叢集可能重新命名為 mycluster-old1。不過,資料庫叢集的資源 ID 在切換期間不會變更。因此,當綠色資源被提升為新的生產資源時,它們的資源與以前在生產中IDs的藍色資源IDs不匹配。

切換藍/綠部署之後,請考慮IDs將資源更新為新升級的生產資源,以取得與生產資源搭配使用的整合功能和服務。具體來說,請考慮下列更新:

  • 如果您使用RDSAPI和資源執行篩選IDs,請在切換後調整IDs用於篩選的資源。

  • 如果您使 CloudTrail 用稽核資源,請調整的取用者, CloudTrail 以IDs在切換後追蹤新資源。如需詳細資訊,請參閱在 AWS CloudTrail 中監控 Amazon Aurora API 呼叫

  • 如果您針對藍色環境中的資源使用資料庫活動串流,請調整您的應用程式,以在切換後監控新串流的資料庫事件。如需詳細資訊,請參閱資料庫活動串流支援的區域和 Aurora 資料庫引擎

  • 如果您使用 Performance InsightsAPI,請將呼叫IDs中的資源調整為轉換API後。如需詳細資訊,請參閱利用 極光上的 Performance Insights 來監控資料庫負載

    您可以在切換後監控具有相同名稱的資料庫,但其不包含切換前的資料。

  • 如果您IDs在IAM策略中使用資源,請務必在必要時新增新升級資源IDs的資源。如需詳細資訊,請參閱Aurora 的身份和訪問管理

  • 如果您的資料庫叢集資料庫有關聯的IAM角色,請務必在切換後重新關聯這些角色。附加的角色不會自動複製到綠色環境。

  • 如果您使用資料庫驗證對資料IAM庫叢集進行驗證,請確定用於資料庫存取的IAM原則具有原則Resource元素下方列出的藍色和綠色資料庫。這是必要的,以便在切換後連線到綠色資料庫。如需詳細資訊,請參閱建立並使用 IAM 政策進行 IAM 資料庫存取

  • 如果您想要還原屬於藍/綠部署之資料庫叢集的手動資料庫叢集快照,請確定透過檢查取得快照的時間來還原正確的資料庫叢集快照。如需詳細資訊,請參閱從資料庫叢集快照還原

  • Amazon Aurora 在藍色環境中複製基礎 Aurora 儲存磁碟區,進而建立綠色環境。綠色叢集磁碟區只會儲存對綠色環境所做的增量變更。若您刪除藍色環境中的資料庫叢集,綠色環境中的基礎 Aurora 儲存磁碟區大小會增加到完整大小。如需詳細資訊,請參閱複製 Amazon Aurora 資料庫叢集的一個磁碟區

  • 若您在藍/綠部署的綠色環境中將資料庫執行個體新增至資料庫叢集,則在切換時,新的資料庫執行個體不會取代藍色環境中的資料庫執行個體。不過,新的資料庫執行個體會保留在資料庫叢集中,並在新的生產環境中成為資料庫執行個體。

  • 在藍/綠部署的綠色環境中刪除資料庫叢集中的資料庫執行個體時,您無法建立新的資料庫執行個體,以在藍/綠部署中取代該執行個體。

    如果您使用與已刪除的資料庫執行個體相同的名稱建立新的資料庫執行個體,則其具有不同的資料庫執行個體DbiResourceId,因此它不屬於綠色環境。ARN

    如果您在綠色環境中刪除資料庫叢集中的資料庫執行個體,則會產生下列行為:

    • 如果藍色環境中存在名稱相同的資料庫執行個體,則它不會切換至綠色環境中的資料庫執行個體。此資料庫執行個體不會透過將 -oldn 附加至資料庫執行個體名稱來重新命名。

    • 指向藍色環境中資料庫執行個體的任何應用程式都會在切換後繼續使用相同的資料庫執行個體。