本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
災難復原和 Amazon DocumentDB 全球叢集
透過使用全域叢集,您可以快速從災難中復原,例如區域故障。從災難復原通常是使用RTO和的值來衡量RPO。
-
復原時間目標 (RTO) — 系統在災難發生後返回工作狀態所需的時間。換句話說,RTO測量停機時間。對於全域叢集,以分鐘為單RTO位。
-
復原點目標 (RPO) — 可能遺失的資料量 (以時間為單位)。對於全域叢集,通RPO常以秒為單位。
-
若要從意外中斷中復原,您可以執行跨區域容錯移轉至全域叢集中的其中一個次要節點。當您的全域叢集有多個次要區域時,請確定已卸離要升級為主要區域的所有次要區域。然後,您將其中一個次要區域提升為新的主要區域 AWS 區域。最後,您可以在每個其他次要區域中建立新叢集,並將這些叢集附加到全域叢集。
針對 Amazon 文件資料庫全域叢集執行受管容錯移轉
此方法的目的是在發生實際區域災難或服務完全中斷的情況下,提供業務持續性。
在受管容錯移轉期間,您的主叢集會容錯移轉到您選擇的次要區域,同時維護 Amazon DocumentDB 全域叢集的現有複寫拓撲。選擇的次要叢集會將其中一個唯讀節點提升為完整寫入器狀態。此步驟可讓叢集擔任主要叢集的角色。當此叢集擔任這個新角色時,您的資料庫在短時間內無法使用。當此次要叢集成為新的主叢集時,未從舊主叢集複寫到所選次要叢集的資料可能會遺失。在與新的主要磁碟區同步之前,舊的主要磁碟區會盡最大努力嘗試建立快照,以便在快照上保留未複製的資料。
注意
只有在主叢集和次要叢集具有相同的主要、次要和修補程式層級引擎版本時,您才能在 Amazon DocumentDB 全域叢集上執行受管的跨區域叢集容錯移轉。但是,修補程式等級可能會有所不同,取決於次要引擎版本。如果您的引擎版本不相容,您可以依照 為 Amazon DocumentDB 全域叢集執行手動容錯移轉 中的步驟手動執行容錯移轉。
使用此功能之前,建議您執行下列操作以將資料遺失降到最低:
將應用程式離線,以防止將寫入傳送到 Amazon DocumentDB 全域叢集的主要叢集。
檢查所有 Amazon DocumentDB 次要叢集的延遲時間。選擇複寫延遲最低的次要區域,即可將目前失敗的主要區域的資料遺失降到最低。檢視 Amazon 中的
GlobalClusterReplicationLag
指標,以檢查全域叢集中所有 Amazon DocumentDB 次要叢集的延遲時間。 CloudWatch這些指標會顯示次要叢集的複寫到主要叢集的距離 (以毫秒為單位)。如需 Amazon 文件資料庫 CloudWatch 指標的詳細資訊,請參閱。Amazon DocumentDB 指標
在受管理容錯移轉期間,選擇的次要叢集會提升為新角色,做為主要叢集。但是,它不會繼承主要叢集的各種配置選項。組態不相符可能會導致效能問題、工作負載不相容,以及其他異常行為。為了避免此類問題,我們建議您針對下列各項解決 Amazon DocumentDB 全域叢集之間的差異:
必要時為新的主要叢集設定 Amazon DocumentDB 叢集參數群組 — 您可以針對 Amazon DocumentDB 全域叢集中的每個叢集個別設定 Amazon DocumentDB 叢集參數群組。因此,當您升級次要叢集以接管主要角色時,次要的參數群組的設定可能與主要叢集的設定不同。如果是這樣,請修改已升級的次要叢集的參數群組,以符合主要叢集的設定。如要瞭解如何作業,請參閱修改 Amazon DocumentDB 叢集參數群組。
設定監控工具和選項,例如 Amazon CloudWatch 事件和警示 — 視需要為全域叢集設定已升級的叢集,使用相同的記錄功能、警示等。與參數群組一樣,在容錯移轉程序期間,這些功能的組態不會從主要叢集繼承。某些 CloudWatch 度量 (例如複寫延遲) 僅適用於次要區域。因此,容錯移轉會改變檢視這些指標並對其設定警示的方式,而且可能需要變更任何預先定義的儀表板。如需 Amazon 叢集和監控的詳細資訊,請參閱。監控 Amazon DocumentDB
通常,選擇的次要叢集會在幾分鐘內擔任主要角色。一旦新的主要區域的寫入器節點可用,您就可以將應用程式連線到該節點並恢復工作負載。Amazon DocumentDB 提升新的主要叢集之後,它會自動重建所有其他次要區域叢集。
由於 Amazon DocumentDB 全域叢集使用非同步複寫,因此每個次要區域的複寫延遲可能會有所不同。Amazon DocumentDB 會重建這些次要區域,使其 point-in-time 資料與新的主要區域叢集完全相同。整個重建工作的期間可能持續幾分鐘到數小時,取決於儲存磁碟區的大小和區域之間的距離。當次要區域叢集從新的主要區域完成重建時,便可供讀取存取使用。一旦新的主要寫入器升級並可用,新的主要區域的叢集就可以處理 Amazon DocumentDB 全域叢集的讀取和寫入操作。
若要還原全域叢集的原始拓撲,Amazon DocumentDB 會監控舊主要區域的可用性。只要該區域正常運作且再次可用,Amazon DocumentDB 就會自動將該區域新增回全域叢集做為次要區域。在舊的主要區域中建立新的儲存磁碟區之前,Amazon DocumentDB 會嘗試在故障點拍攝舊儲存磁碟區的快照。這樣做是為了讓您用它來復原任何遺失的資料。如果此作業成功,Amazon DocumentDB 會將名為「rds: docdb-unplanned-global-failover-name-of-old-primary-DB 叢集時間戳記」的快照放置在的快照區段中。 AWS Management Console您也可以在DescribeDBClusterSnapshots
API作業傳回的資訊中看到此快照列出。
注意
舊儲存磁碟區的快照是系統快照,會受到舊的主要叢集上設定的備份保留期限的限制。若要在保留期間之外保留此快照,您可以複製該快照並將它儲存為手動快照。若要進一步了解如何複製快照,包括定價在內,請參閱 複製叢集快照。
還原原始拓撲之後,您可以在最適合您的業務和工作負載時執行切換作業,將全域叢集復原至原始主要區域。若要啟用,請依照「為 Amazon DocumentDB 全域叢集執行切換」中的步驟進行。
您可以使用 AWS Management Console、或 Amazon DocumentDB 容錯移轉 Amazon DocumentDB 全域叢集。 AWS CLI API
為 Amazon DocumentDB 全域叢集執行手動容錯移轉
如果其中一個叢集中的整個叢集 AWS 區域 無法使用,您可以升級全域叢集中的另一個叢集以具有讀取/寫入功能。
如果不同 AWS 區域 叢集中的叢集比較適合做為主要叢集,您可以手動啟動全域叢集容錯移轉機制。例如,您可以增加其中一個次要叢集的容量,然後將它提升為主要叢集。或者, AWS 區域 可能會改變之間的活動平衡,以便將主要叢集切換到其他叢集 AWS 區域 可能會降低寫入作業的延遲。
下列程序概述如何在 Amazon DocumentDB 全域叢集中升級其中一個次要叢集。
若要升級次要叢集:
-
停止在中斷的情況下向主要叢集發出DML陳述式和其他寫入作業。 AWS 區域
-
從次要叢集識別叢集 AWS 區域 以用作新主要叢集。如果您的全域叢集 AWS 區域 中有兩個 (或更多) 次要叢集,請選擇延遲時間最短的次要叢集。
-
從全域叢集中卸離選擇的次要叢集。
從全域叢集移除次要叢集會立即停止從主要叢集到此次要叢集的複寫,並將其升級到具有完整讀取/寫入功能的獨立佈建叢集。與該區域中的主要叢集相關聯的任何其他次要叢集仍然可用,並且可以接受應用程式的呼叫。它們也會取用資源。由於您正在重新建立全域叢集,因此為了避免分割大腦和其他問題,請先移除其他次要叢集,然後按照以下步驟建立新的全域叢集。
如需分離的詳細步驟,請參閱從 Amazon DocumentDB 全域叢集中移除叢集。
-
在下一個步驟中,當您開始向其新增區域時,此叢集會成為新全域叢集的主要叢集。
-
新增 AWS 區域 至叢集。當您執行這項操作時,從主要到次要的複寫程序即會開始。
-
視需要新增更多 AWS 區域 內容,以重新建立支援應用程式所需的拓撲。請確定在進行這些變更之前、期間和之後,將應用程式寫入傳送至正確的叢集,以避免全域叢集中叢集中的資料不一致 (分腦問題)。
-
當中斷解決後,您準備好再次將原始叢集指派 AWS 區域 為主要叢集時,請反向執行相同的步驟。
-
從全域叢集中移除其中一個次要叢集。這將使其能夠為讀/寫流量提供服務。
-
將所有寫入流量重新導向至原始叢集中的主要叢集 AWS 區域。
-
新增 AWS 區域 以設定與以前相同 AWS 區域 的一或多個次要叢集。
您可以使用管理 Amazon DocumentDB 全域叢集 AWS SDKs,讓您建立解決方案以自動化災難復原和業務持續性規劃使用案例的全域叢集容錯移轉程序。我們在 Apache 2.0 授權下為我們的客戶提供了一個這樣的解決方案,並且可以從我們的工具儲存庫在這裡
為 Amazon DocumentDB 全域叢集執行切換
透過使用轉換,您可以定期變更主要叢集的區域。此方法適用於受控情況,例如操作維護及其他計劃內操作程序。
使用轉換有三種常見的使用案例:
對於特定行業強制實施的「區域輪換」需求。例如,金融服務法規可能希望第 0 層系統切換到不同的區域數個月時間,以確保定期演練災難復原程序。
適用於多地區 "follow-the-sun" 應用程式。例如,某家公司可能希望根據不同時區的營業時間,在不同區域提供較低的延遲寫入。
做為容錯移轉後容錯移轉回原始主要區域的 zero-data-loss 方法。
注意
轉換器的設計是為了在運作良好的 Amazon DocumentDB 全域叢集上使用。若要從意外中斷中復原,請遵循針對 Amazon DocumentDB 全域叢集執行手動容錯移轉中的適當程序。
若要執行轉換,您的目標次要資料庫叢集必須與主要資料庫叢集執行完全相同的引擎版本,包括修補程式等級在內 (視引擎版本而定)。如需詳細資訊,請參閱受管理的跨區域轉換和容錯移轉的修補程式層級相容性。開始轉換之前,請先檢查全域叢集中的引擎版本,以確定它們可支援受管跨區域轉換,並視需要進行升級。如果引擎版本不相符,Amazon DocumentDB 會自動封鎖對轉換叢集的呼叫。
在切換期間,Amazon DocumentDB 會透過主要叢集切換到您選擇的次要區域,同時維護全域叢集的現有複寫拓撲。在開始切換程序之前,Amazon DocumentDB 會等待所有次要區域叢集與主要區域叢集完全同步。然後,主要區域中的資料庫叢集會變成唯讀,而選擇的次要叢集會將其中一個唯讀節點提升為完整寫入器狀態。將此節點提升為寫入器可讓該次要叢集擔任主要叢集的角色。由於所有次要叢集在程序開始時都與主叢集同步,因此新的主叢集會繼續執行 Amazon DocumentDB 全域叢集的作業,而不會遺失任何資料。您的資料庫在短時間內無法使用,因為同時間主要叢集和選取的次要叢集會承擔其新角色。
若要最佳化應用程式可用性,建議您在使用此功能之前先執行下列動作:
在非尖峰時段執行此作業,或在寫入主要叢集的其他時間執行此作業。
將應用程式離線,以防止將寫入傳送到 Amazon DocumentDB 全域叢集的主要叢集。
檢視 Amazon 中的
GlobalClusterReplicationLag
指標,以檢查全域叢集中所有 Amazon DocumentDB 次要叢集的延遲時間。 CloudWatch此測量結果顯示次要叢集複寫到主要叢集的距離 (以毫秒為單位)。此值與 Amazon DocumentDB 完成切換所需的時間成正比。因此,延遲值越大,轉換所需的時間越長。如需 Amazon 文件資料庫 CloudWatch 指標的詳細資訊,請參閱。Amazon DocumentDB 指標
在轉換期間,選擇的次要資料庫叢集會提升為作為主要資料庫叢集的新角色。但是,它不會繼承主要資料庫叢集的各種組態選項。組態不相符可能會導致效能問題、工作負載不相容,以及其他異常行為。為了避免此類問題,我們建議您針對下列各項解決 Amazon DocumentDB 全域叢集之間的差異:
必要時為新的主要叢集設定 Amazon DocumentDB 資料庫叢集參數群組 — 您可以針對 Amazon DocumentDB 全域叢集中的每個叢集獨立設定 Amazon DocumentDB 叢集參數群組。這表示當您提升次要資料庫叢集以接管主要角色時,其參數群組可能會設定與主要資料庫叢集不同的參數群組。如果是這樣,請修改提升的次要資料庫叢集的參數群組,以符合主要叢集的設定。若要瞭解如何操作,請參閱管理 Amazon DocumentDB 叢集參數群組。
設定監控工具和選項,例如 Amazon E CloudWatch vents 和警示 — 視需要為全域叢集設定已升級的叢集,使用相同的記錄功能、警示等。與參數群組一樣,在轉換程序期間,這些功能的組態不會從主要叢集繼承。某些 CloudWatch 度量 (例如複寫延遲) 僅適用於主要區域。因此,轉換會改變檢視這些指標並對其設定警示的方式,而且可能需要變更任何預先定義的儀表板。如需詳細資訊,請參閱監控 Amazon DocumentDB。
注意
角色轉換通常需要數分鐘才能完成。
當切換程序完成時,提升的 Amazon DocumentDB 叢集可以處理全域叢集的寫入操作。
您可以使用下 AWS Management Console 列指令切換 Amazon DocumentDB 全域叢集: AWS CLI