如要將相同系統的 PostgreSQL 資料庫遷移至 Cloud SQL,資料庫遷移服務會連線至目的地 PostgreSQL 適用的 Cloud SQL 執行個體,並代為管理連續遷移程序。目的地執行個體會建立與來源資料庫的連線,而資料庫遷移服務則會協調及監控端對端資料管道。
如要將標準同質 PostgreSQL 遷移至 Cloud SQL,資料庫遷移服務支援連續遷移。在連續遷移作業中,系統會從快照轉儲載入初始資料,然後使用邏輯解碼和 pglogical 擴充功能,持續從來源資料庫的預寫記錄 (WAL) 複製資料變更。如果是連續
快速啟動遷移,資料庫遷移服務會使用 pgnative。
持續遷移階段
持續遷移作業會依序經過下列階段:
標準遷移
-
複製設定和自動化調度管理:建立遷移工作時,資料庫遷移服務會將目的地 PostgreSQL 適用的 Cloud SQL 執行個體設為副本,並使用
pglogical擴充功能建立複製訂閱項目。遷移至現有的 Cloud SQL 執行個體時,資料庫遷移服務會將執行個體降級,設定為外部副本 (不會將資料庫設為唯讀模式)。 - 初始快照階段:啟動遷移工作時,資料庫遷移服務會為來源執行個體上所選資料庫建立一致的快照。初始化快照時,這項程序會短暫鎖定資料表 (通常每個資料表不超過 10 秒)。在整個過程中,來源資料庫會繼續接受讀取和寫入。
- 資料載入階段:資料庫遷移服務會從來源資料庫串流初始快照資料,並載入至目的地 PostgreSQL 適用的 Cloud SQL 執行個體。
- 建立限制和索引:初始資料載入完成後,系統會在目的地執行個體上建立資料表限制 (包括主鍵和外鍵) 和次要索引。將資料載入與限制建立作業分開,可提高資料擷取速度。
-
變更資料擷取 (CDC) 階段:套用限制後,資料庫遷移服務會進入持續 CDC 階段。在 CDC 期間,資料庫遷移服務會使用
pglogical,從來源資料庫的邏輯複製串流擷取進行中的 DML 變更,並近乎即時地套用至目的地執行個體。 - 轉換和升級階段:準備好將應用程式流量切換至目的地執行個體時,請停止寫入來源資料庫,確認複製延遲時間達到零,並在資料庫遷移服務中啟動升級。升級期間,資料庫遷移服務會中斷目的地執行個體與來源的連線、移除複製槽,並將目的地轉換為獨立的讀取/寫入 PostgreSQL 適用的 Cloud SQL 主要執行個體。
快速遷移
-
複製設定和自動化調度管理:建立遷移工作時,資料庫遷移服務會使用 Private Service Connect 介面,自動透過私人 IP 設定網路連線 (自動建立私人連線設定、網路連結和子網路)。這項服務會使用 PostgreSQL 邏輯複製功能 (搭配
pgnative),在來源和目的地資料庫之間建立複製作業,不需在來源安裝pglogical擴充功能,也不必降級目的地執行個體。目的地可以是向其他資料庫提供流量的有效執行個體。 - 初始快照階段:啟動遷移工作時,資料庫遷移服務會為來源資料庫伺服器上所選資料庫建立一致的快照 (每項工作最多可遷移 50 個資料庫)。在整個過程中,來源資料庫會繼續接受讀取和寫入。
- 資料載入階段:資料庫遷移服務會透過私人連線,將初始快照資料直接串流至目的地 PostgreSQL 適用的 Cloud SQL 執行個體。目的地資料庫物件的擁有權會指派給資料庫遷移服務產生的遷移使用者 (使用 Google Cloud 控制台時),或透過 Google Cloud CLI 指定的使用者。
- 建立限制和索引:初始資料載入作業完成後,系統會在目的地執行個體上建立資料表限制和次要索引,確保結構定義忠實呈現,同時盡可能提高擷取效能。
-
變更資料擷取 (CDC) 階段:套用限制後,資料庫遷移服務會進入持續 CDC 階段。在 CDC 期間,資料庫遷移服務會從
pgnativePostgreSQL 邏輯複製串流,串流傳輸進行中的 DML 變更,並近乎即時地套用至目的地執行個體。如果資料表沒有主鍵,只要將資料表的副本身分設為INDEX或FULL,即可複製UPDATE和DELETE作業。 - 轉換和升級階段:準備好將應用程式流量切換至目的地執行個體時,請停止寫入來源資料庫,確認複製延遲時間達到零,並在資料庫遷移服務中啟動升級。在升級期間,資料庫遷移服務會完成 CDC 複製作業、終止複製槽,並卸載遷移管道,讓 PostgreSQL 適用的 Cloud SQL 目的地資料庫完全正常運作,可供用戶端連線。
後續步驟
如要進一步瞭解資料庫遷移服務中的 PostgreSQL 資料和功能支援,請參閱「已知限制」。
如需完整的逐步遷移指南,請參閱「開始使用 PostgreSQL 適用的 Cloud SQL 遷移功能」。