本頁面說明如何使用及升級跨區域唯讀副本 (在與主要執行個體不同的區域中建立的副本),以便進行區域遷移或災難復原。
總覽
提升跨區域副本有兩種常見情況:
- 區域遷移:按照計畫將資料庫遷移至其他區域。
- 災難復原:如果主要區域無法使用,可將資料庫容錯移轉至其他區域。
這兩種用途都涉及設定跨區域複製,然後升級副本。兩者的主要差異在於,副本的升級作業是否為預定作業 (區域遷移),或非預定作業 (主要執行個體無法使用,因此必須容錯移轉至副本的區域,才能繼續作業)。
區域遷移
您可以使用跨區域副本,將資料庫遷移至其他區域,並盡可能縮短停機時間。一般做法是在其他區域建立副本、等待複製作業完成、升級副本,然後將用戶端導向新升級的執行個體。
升級步驟與升級區域內副本相同,請按照操作說明,確保新升級的執行個體包含所有已提交至原始主要執行個體的交易。升級副本並確認新升級的執行個體正常運作後,請更新所有資料庫用戶端,連線至新的執行個體。
災難復原 (DR)
跨區域副本可做為災難復原程序的一部分。如果主要執行個體的區域長時間無法使用,您可以升級跨區域副本,容錯移轉至其他區域。
如要進一步瞭解災難復原,請參閱「關於 Cloud SQL 的災難復原」。
進階災難復原 (DR)
如果您使用的是 Cloud SQL Enterprise Plus 版本,可以將跨區域唯讀副本指定為災難復原副本 (DR 副本),用於進階災難復原 (DR)。使用進階 DR 功能時,您會執行副本容錯移轉,將主要執行個體替換為指定的 DR 副本。舊的主要執行個體會成為已升級 DR 副本的副本。您只能對指定的 DR 副本執行副本容錯移轉。您仍可提升其他唯讀副本,不需進行容錯移轉。
如要在備用資源容錯移轉後,將部署作業恢復至原始狀態,且不遺失任何資料,可以執行切換作業。由於舊的主要執行個體是新主要執行個體的副本,因此您可以再次切換角色,還原舊的主要執行個體。
詳情請參閱「進階災難復原 (DR)」。
驗證容錯移轉條件
由於複製作業是非同步進行,因此當區域發生中斷並嘗試容錯移轉時,最近提交至主要執行個體的部分交易可能會遺失 (未複製到副本)。每當主要執行個體無法使用時,請按照下列步驟操作:(1) 判斷跨區域容錯移轉可能遺失的資料量 (如有);(2) 確保升級後的副本反映盡可能多的近期寫入作業。
檢查複製延遲或升級副本前,請先在 Google Cloud 控制台的副本執行個體「Overview」(總覽) 頁面,查看「Replication state」(複製狀態) 指標 (cloudsql.googleapis.com/database/replication/state),確認副本的複製狀態:
- 主要服務中斷期間:指標可能會回報
Error或Stopped。這表示複製作業因服務中斷而停止。如果提升副本,在停止複製後於主要執行個體上提交的所有交易都會遺失。 - 正常運作期間 (計畫性容錯移轉或遷移):確認指標回報
Running。如果狀態為Error或Stopped,表示副本未收到主要執行個體的更新。如果升級處於這個狀態的副本,會導致資料遺失。
首先,請在監控資訊主頁中查看副本執行個體的 Replication Lag 值,這代表副本落後主要執行個體的秒數。在主要執行個體無法使用之前,這項指標的值代表在該時間範圍內,提交至主要執行個體的交易可能已遺失。舉例來說,如果 Replication Lag 顯示 5 秒,則副本可能缺少在主要執行個體無法使用前 5 秒內寫入主要執行個體的資料。(實際遺失的資料量可能少於這個值,因為 Replication
Lag 也包含副本已成功接收但尚未套用的交易)。
接著,請按照「replication status」(複製狀態) 頁面中的操作說明 (請參閱「mysql Client」(mysql 用戶端) 分頁標籤),使用 MySQL 用戶端連線至副本執行個體。請參閱 Master_Log_File、Read_Master_Log_Pos、Relay_Master_Log_File 和 Exec_Master_Log_Pos 指標的操作說明。確認副本已處理從主要執行個體收到的所有交易。這樣一來,升級後的副本就會反映主要執行個體無法使用前收到的所有交易。
升級唯讀副本
確認符合容錯移轉條件後,即可將其中一個副本升級為可寫入的獨立執行個體。請參考下列情境:
- 區域 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)