推送備用資源,以進行區域性遷移或災難復原

本頁說明如何使用及升級跨區域唯讀副本 (在與主要執行個體不同區域中建立的副本),以進行區域遷移或災難復原。

總覽

升級跨區域副本有兩種常見情境:

  • 區域遷移:有計畫地將資料庫遷移至其他區域。
  • 災難復原:如果主要資料庫所在區域無法使用,請將資料庫容錯移轉至其他區域。

這兩種用途都涉及設定跨區域複製作業,然後升級備用資源。兩者的主要差異在於是否要升級副本。如果是區域遷移,升級副本是預先規劃好的;如果主要資料庫無法使用,則需要容錯移轉至副本的區域,才能繼續運作,因此升級副本是未經規劃的。

區域遷移

您可以利用跨區域副本,將資料庫遷移至其他區域,停機時間極短。一般概念是在另一個區域中建立副本,等待複寫趕上進度,然後升級副本,並將用戶端導向新升級的例項。

升級程序與升級區域內副本相同,請按照這些操作說明進行,確保新升級的執行個體包含所有已提交至原始主要執行個體的交易。升級副本並確認新升級的執行個體正常運作後,請更新所有資料庫用戶端,連線至新執行個體。

災難復原 (DR)

跨區域副本可用於災難復原程序。如果主要執行個體所在的區域長時間無法使用,您可以升級跨區域備用資源,容錯移轉至其他區域。

如要進一步瞭解災難復原,請參閱關於 Cloud SQL 中的災難復原

進階災難復原 (DR)

如果您使用 Cloud SQL Enterprise Plus 版本,可以將跨區域唯讀備用資源指定為災難復原備用資源 (DR 備用資源),以進行進階災難復原 (DR)。使用進階 DR 時,您可以執行備用資源容錯移轉,以指定的 DR 備用資源取代主要執行個體。舊的主要執行個體會成為升級後災難復原副本的副本。您只能對指派的 DR 備用資源執行備用資源容錯移轉。您還是可以升級其他唯讀備用資源,不必進行容錯移轉。

如要在備用資源容錯移轉後,將部署作業還原至原始狀態,且不會遺失任何資料,可以執行切換作業。由於舊的主要執行個體是新主要執行個體的副本,因此您可以再次切換角色,還原舊的主要執行個體。

詳情請參閱「進階災難復原 (DR)」。

確認容錯移轉條件

由於複製作業是非同步,因此當區域發生中斷並嘗試容錯移轉時,系統可能會遺失最近提交至主要區域的部分交易 (未複製到複本)。每當主要執行個體無法使用時,下列步驟會說明 (1) 如何判斷跨區域容錯移轉可能遺失的資料量 (如有),以及 (2) 如何確保升級的副本盡可能反映最近的寫入作業。

首先,請在監控資訊主頁中檢查 Lag Bytes 值。如果主要執行個體所在區域發生服務中斷情形,系統會回報主要執行個體的 Lag Bytes

然後,按照複寫狀態頁面中的操作說明 (請參閱「psql Client」分頁),使用 PostgreSQL 用戶端連線至副本執行個體。請參閱 pg_catalog.pg_last_wal_receive_lsn()pg_catalog.pg_last_wal_replay_lsn() 指標的相關操作說明。確認副本已處理從主要副本收到的所有交易。這可確保在升級時,備用資源會反映主要執行個體無法使用前收到的所有交易。

升級唯讀備用資源

確定符合容錯移轉條件後,您可以將其中一個副本升級為可寫入的獨立執行個體。請參考下列情境:

  • 區域 A (us-central1) 具有高可用性主要執行個體 (db-a-0)
  • 區域 B (us-west1) 具有 db-a-0 的高可用性跨區域副本 (db-b-1)
  • 區域 C (us-east1) 具有 db-a-0 的跨區域備用資源 (db-c-1)

您可以選擇將 B 地區的 db-b-1 升級為獨立的可寫入執行個體。

如需詳細操作說明,請參閱「宣傳副本」。

確認機型是否合適

監控執行個體的指標 (例如 CPU 和記憶體用量),確保新升級的執行個體機器類型適合其工作負載。如果新升級的執行個體比先前的主要執行個體小,建議您調整升級後的執行個體大小,使其與先前的主要執行個體相同,這樣才能處理相同的工作負載量。

為升級的執行個體啟用高可用性

如果是災難復原設定,建議您將要升級的副本設為高可用性副本。或者,將新升級的執行個體設為高可用性。如果您選擇不設定高可用性唯讀備用資源,也可以在升級執行個體時設定高可用性。

升級後,系統會自動為唯讀副本設定備份。 設定高可用性的唯讀備用資源時,做法與主要執行個體相同。詳情請參閱設定高可用性的執行個體

重新建立額外的副本

如果將備用資源推送為主要執行個體,您需要重新建立先前主要執行個體的任何其他備用資源。舉例來說,請參考先前提及並重複使用的設定:

  • 區域 A (us-central1) 具有高可用性主要執行個體 (db-a-0)
  • 區域 B (us-west1) 具有 db-a-0 的跨區域副本 (db-b-1)
  • 區域 C (us-east1) 具有 db-a-0 的跨區域備用資源 (db-c-1)

如果主要執行個體 (db-a-0) 無法使用,您可以將 B 區域中的副本升級為主要執行個體。如要在 A 和 C 區域中再次擁有額外的備用資源,請刪除舊的執行個體 (A 區域中原先的主要執行個體,以及 C 區域中的備用資源),然後從 B 區域中的新主要執行個體建立新的唯讀備用資源

產生的設定如下所示:

  • 區域 A (us-central1) 現在有跨區域副本 (db-a-1)
  • 區域 B (us-west1) 現在有主要執行個體 (db-b-1)
  • 區域 C (us-east1) 現在有新的跨區域副本 (db-c-2)