本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
藍/綠部署的限制和考量
Amazon 的藍/綠部署RDS需要仔細考量複寫插槽、資源管理、執行個體大小以及對資料庫效能的潛在影響等因素。下列各節提供指引,協助您最佳化部署策略,以確保最短的停機時間、順暢轉換,以及有效管理資料庫環境。
藍/綠部署的限制
下列限制適用於藍/綠部署。
藍/綠部署的一般限制
下列一般限制適用於藍/綠部署:
-
藍色/綠色部署不支援管理主要使用者密碼 AWS Secrets Manager.
如果藍色資料庫上已啟用專用記錄磁碟區 (DLV),則必須在所有資料庫執行個體 (包括僅供讀取複本) 上啟用該磁碟區。
-
在轉換期間,藍色和綠色環境無法與 Amazon Redshift 進行零ETL整合。您必須先刪除整合再進行切換,然後重新建立整合。
-
建立藍/綠部署時,必須在綠色環境上停用事件排程器 (
event_scheduler
參數)。這樣可以防止在綠色環境中產生事件並導致不一致。 -
您無法將未加密的資料庫執行個體變更為加密的資料庫執行個體。此外,您無法將加密的資料庫執行個體變更為未加密的資料庫執行個體。
-
您無法將藍色資料庫執行個體變更為比對應的綠色資料庫執行個體更高的引擎版本。
-
藍色環境和綠色環境中的資源必須相同 AWS 帳戶.
-
下列功能不支援藍/綠部署:
-
Amazon RDS 代理
-
階層式僅供讀取複本
-
跨區域僅供讀取複本
-
AWS CloudFormation
-
Multi-AZ 資料庫叢集部署
支援藍/綠部署進行多可用區域資料庫執行個體部署。如需異地同步備份部署的詳細資訊,請參閱設定和管理 Amazon 的多可用區部署 RDS。
-
的藍色/綠色部署SQL限制
下列限制適用於「我的SQL藍/綠」部署:
-
我的SQL版本 8.0.11 到 8.0.13 有一個社區錯誤
,阻止他們支持藍/綠部署。 -
藍色資料庫執行個體不能是外部 binlog 複本。
-
如果來源資料庫與自訂選項群組相關聯,則您無法在建立藍/綠部署時指定主要版本升級。
在此情況下,您可以建立藍/綠部署,而無需指定主要版本升級。然後,您可以在綠色環境中升級資料庫。如需詳細資訊,請參閱升級資料庫執行個體引擎版本。
-
藍/綠部署不支援 AWS JDBC我的驅動程序SQL。如需詳細資訊,請參閱的已知限制
GitHub。
藍色
下列限制適用於SQL藍色/綠色部署:
-
下列版本的 適用於 Postgre SQL 的支援作為升級來源和目標版本:11.21 及更高版本、12.16 及更高版本、13.12 及更高版本、14.9 及更高版本、15.4 及更高版本,以及 16.1 及更高版本。對於較低版本,您可以對支援的版本執行次要版本升級。
-
除非。
-
藍色資料庫執行個體不能是自我管理邏輯來源 (發行者) 或複本 (訂閱者)。
-
如果藍色資料庫執行設定為外部資料包裝函式 (FDW) 延伸模組的外部伺服器,您必須使用執行個體端點名稱而非 IP 位址。這可讓組態在轉換之後保持運作狀態。
-
在藍/綠部署中,每個資料庫都需要一個邏輯複寫插槽。隨著資料庫數量的增加,資源額外負荷會增加,並且可能導致複寫延遲,尤其是在資料庫資料庫執行個體未充分擴展的情況下。影響視資料庫工作負載和連線數等因素而定。為了減輕此問題,請考慮擴展您的資料庫執行個體類別,或減少來源執行個體上的資料庫數量。
-
建立藍/綠部署時,必須在藍色環境上停用
pg_partman
延伸模組。擴充功能會DDL執行例如CREATE TABLE
,中斷從藍色環境到綠色環境的邏輯複寫的作業。 -
建立藍/綠部署之後,所有綠色資料庫上的
pg_cron
延伸模組必須保持停用狀態。延伸模組具有以超級使用者身分執行的背景工作者,且會略過綠色環境的唯讀設定,這可能會造成複寫衝突。 建立藍/綠部署時,必須在藍色環境上停用
pglogical
和pgactive
延伸模組。將綠色環境提升為新的生產環境後,您可以再次啟用擴充功能。此外,藍色資料庫不能是外部執行個體的邏輯訂閱者。-
如果您使用
pgAudit
擴充功能,它必須保留在藍色和綠色資shared_preload_libraries
料庫執行個體的自訂資料庫參數群組上的共用程式庫 () 中。如需詳細資訊,請參閱設定 pgAudit 擴充功能。
藍/綠部署的SQL發生邏輯複製限制
藍/綠部署會使用邏輯複寫,讓預備環境與生產環境保持同步。Postgre SQL 具有與邏輯複寫相關的某些限制,這轉化為針對 Postgre 資料庫執行個體為 建立藍/綠部署時RDS的限制。SQL
下表說明適用於 Postgre 的 RDS 藍/綠部署的邏輯複寫限制。SQL
限制 | 說明 |
---|---|
資料定義語言 (DDL) 陳述式 (例如CREATE TABLE 和CREATE SCHEMA ) 不會從藍色環境複製到綠色環境。 |
如果 Amazon 在藍色環境中RDS偵測到DDL變更,則您的綠色資料庫會進入降級的複寫狀態。 您會收到一個事件,通知您藍色環境中的DDL變更無法複製到綠色環境。您必須刪除藍/綠部署和所有綠色資料庫,然後重新建立該部署。否則,您將無法轉換藍/綠部署。 |
序列物件上的 NEXTVAL 作業不會在藍色環境與綠色環境之間同步。 |
在轉換期間, Amazon 會在綠色環境中RDS遞增序列值,以符合藍色環境中的序列值。如果您有數千個序列,這可能會延遲轉換。 |
藍色環境中的大型物件建立或修改並不會複寫到綠色環境。 |
如果 Amazon 在 RDS 會產生一個事件,通知您藍色環境中的大型物件變更無法複製到綠色環境。您必須刪除藍/綠部署和所有綠色資料庫,然後重新建立該部署。否則,您將無法轉換藍/綠部署。 |
具體化視觀表不會在綠色環境中自動重新整理。 |
在藍色環境中重新整理具體化視觀表不會在綠色環境中重新整理這些視觀表。切換後,您可以使用REFRESHMATERIALIZEDVIEW |
UPDATE並且不允許在沒有主鍵的表上進DELETE行操作。 |
在建立藍/綠部署之前,請確定資料庫執行個體中的所有資料表都有主索引鍵。 |
如需詳細資訊,請參閱 Postgre SQL 邏輯複寫說明文件中的限制
藍/綠部署考量
Amazon 會使用每個資源DbClusterResourceId
的DbiResourceId
追蹤藍/綠部署的資源。此資源 ID 為 AWS 區域-資源的唯一不可變標識符。
資源 ID 與資料庫執行個體 ID 不同。每一個都會列在RDS主控台的資料庫組態中。
當您切換藍/綠部署時,資源的名稱 (執行個體 ID) 會變更,但每個資源都保留相同的資源 ID。例如,資料庫執行個體識別符可能是藍色環境中的 mydb
。切換後,相同的資料庫執行個體可能重新命名為 mydb-old1
。不過,資料庫執行個體的資源 ID 在切換期間不會變更。因此,當綠色資源被提升為新的生產資源時,它們的資源與以前在生產中IDs的藍色資源IDs不匹配。
切換藍/綠部署之後,請考慮IDs將資源更新為新升級的生產資源,以取得與生產資源搭配使用的整合功能和服務。具體來說,請考慮下列更新:
-
如果您使用RDSAPI和資源執行篩選IDs,請在切換後調整IDs用於篩選的資源。
-
如果您使 CloudTrail 用稽核資源,請調整的取用者, CloudTrail 以IDs在切換後追蹤新資源。如需詳細資訊,請參閱在 AWS CloudTrail 中監控 Amazon RDS API 呼叫。
-
如果您使用 Performance InsightsAPI,請將呼叫IDs中的資源調整為轉換API後。如需詳細資訊,請參閱利用 RDSAmazon上的 Performance Insights 來監控資料庫負載。
您可以在切換後監控具有相同名稱的資料庫,但其不包含切換前的資料。
-
如果您IDs在IAM策略中使用資源,請務必在必要時新增新升級資源IDs的資源。如需詳細資訊,請參閱Amazon RDS Amazon 的身份和訪問管理。
-
如果您的執行個體有關聯的IAM角色,請務必在切換後重新關聯這些角色。附加的角色不會自動複製到綠色環境。
-
如果您使用資料庫驗證對資料IAM庫執行個體進行驗證,請確定用於資料庫存取的IAM原則具有原則
Resource
元素下方列出的藍色和綠色資料庫。這是必要的,以便在切換後連線到綠色資料庫。如需詳細資訊,請參閱建立並使用 IAM 政策進行 IAM 資料庫存取。 -
如果您使用 AWS Backup 管理藍/綠部署中資源的自動備份,調整以下項目IDs使用的資源 AWS Backup 轉換後。如需詳細資訊,請參閱使用 AWS Backup 管理 Amazon 的自動備份 RDS。
-
如果您想要還原屬於藍/綠部署之資料庫執行個體的手動或自動資料庫快照,請確定透過檢查取得快照的時間來還原正確的資料庫快照。如需詳細資訊,請參閱還原至資料庫執行個體。
-
如果您想要描述先前的藍色環境資料庫執行個體自動備份,或將其還原到某個時間點,請將資源 ID 用於操作。
因為資料庫執行個體的名稱會在切換期間變更,所以您無法將其先前的名稱用於
DescribeDBInstanceAutomatedBackups
或RestoreDBInstanceToPointInTime
操作。如需詳細資訊,請參閱將資料庫執行個體還原至 Amazon 的指定時間 RDS。
-
若您在藍/綠部署的綠色環境中將僅供讀取複本新增至資料庫執行個體,則在切換時,新的僅供讀取複本不會取代藍色環境中的僅供讀取複本。不過,新的僅供讀取複本會在切換後保留在新的生產環境中。
-
在藍/綠部署的綠色環境中刪除資料庫執行個體時,您無法建立新的資料庫執行個體,以在藍/綠部署中取代該執行個體。
如果您使用與刪除的資料庫執行個體相同的名稱和 Amazon Resource Name (ARN) 建立新的資料庫執行個體,則該執行個體的名稱與刪除的資料庫執行個體不同
DbiResourceId
,因此它不屬於綠色環境。如果您刪除綠色環境中的資料庫執行個體,則會產生下列行為:
-
如果藍色環境中存在名稱相同的資料庫執行個體,則它不會切換至綠色環境中的資料庫執行個體。此資料庫執行個體不會透過將
-old
新增至資料庫執行個體名稱來重新命名。n
-
指向藍色環境中資料庫執行個體的任何應用程式都會在切換後繼續使用相同的資料庫執行個體。
相同的行為適用於資料庫執行個體和僅供讀取複本。
-