遷移流程

如要將同質 PostgreSQL 遷移至 AlloyDB for PostgreSQL,資料庫遷移服務會連線至目的地 AlloyDB for PostgreSQL 叢集主要執行個體,並代為管理連續遷移程序。目的地主要執行個體會建立與來源資料庫的連線,資料庫遷移服務則會自動調度及監控端對端資料管道。

如要將標準同質 PostgreSQL 遷移至 AlloyDB for PostgreSQL,資料庫遷移服務支援連續遷移。在連續遷移作業中,系統會從快照轉儲載入初始資料,然後使用邏輯解碼和 pglogical 擴充功能,持續從來源資料庫的預寫記錄檔 (WAL) 複製進行中的資料變更。如果是連續 快速啟動遷移,資料庫遷移服務會使用 pgnative。

持續遷移階段

持續遷移作業會依序經過下列階段:

標準遷移

  1. 複製設定和自動化調度管理:建立遷移工作時,資料庫遷移服務會將目的地 AlloyDB for PostgreSQL 叢集主要執行個體設為副本,並使用 pglogical 擴充功能建立複製訂閱項目。遷移至現有的 AlloyDB for PostgreSQL 叢集時,資料庫遷移服務會設定外部複製,不會將資料庫設為唯讀模式。
  2. 初始快照階段:啟動遷移工作時,資料庫遷移服務會為來源執行個體上所選資料庫建立一致的快照。初始化快照時,這項程序會短暫鎖定資料表 (通常每個資料表不超過 10 秒)。在整個過程中,來源資料庫會繼續接受讀取和寫入。
  3. 資料載入階段:資料庫遷移服務會從來源資料庫串流初始快照資料,並載入至目的地 AlloyDB for PostgreSQL 叢集主要執行個體。
  4. 建立限制和索引:初始資料載入作業完成後,系統會在目的地執行個體上建立資料表限制 (包括主鍵和外鍵) 和次要索引。將資料載入與限制建立作業分開,可提高資料擷取速度。
  5. 變更資料擷取 (CDC) 階段:套用限制後,資料庫遷移服務會進入持續 CDC 階段。在 CDC 期間,資料庫遷移服務會使用 pglogical,從來源資料庫的邏輯複製串流擷取進行中的 DML 變更,並近乎即時地套用至目的地叢集。
  6. 轉換和升級階段:準備好將應用程式流量切換至目的地叢集時,請停止寫入來源資料庫,確認複製延遲時間達到零,並在資料庫遷移服務中啟動升級。升級期間,資料庫遷移服務會中斷目的地叢集與來源的連線、移除複製槽,並將目的地轉換為獨立的讀取/寫入 AlloyDB for PostgreSQL 主要執行個體。

快速遷移

  1. 複製設定和自動化調度管理:建立遷移工作時,資料庫遷移服務會使用 Private Service Connect 介面,透過私人 IP 自動設定網路連線 (自動建立私人連線設定、網路連結和子網路)。這項服務會使用 PostgreSQL 邏輯複製功能 (搭配 pgnative),在來源和目的地資料庫之間建立複製作業,不需在來源安裝 pglogical 擴充功能。目的地可以是向其他資料庫提供流量的有效 AlloyDB for PostgreSQL 叢集。
  2. 初始快照階段:啟動遷移工作時,資料庫遷移服務會為來源資料庫伺服器上所選的資料庫建立一致的快照 (每項工作最多可遷移 50 個資料庫)。在整個過程中,來源資料庫會繼續接受讀取和寫入。
  3. 資料載入階段:資料庫遷移服務會透過私人連線,將初始快照資料直接串流至目的地 AlloyDB for PostgreSQL 叢集。目的地資料庫物件的擁有權會指派給為遷移工作設定的目的地資料庫使用者 (例如預設的 postgres 使用者)。
  4. 建立限制和索引:初始資料載入完成後,系統會在目的地叢集建立資料表限制和次要索引,確保結構定義忠實呈現,同時盡可能提高擷取效能。
  5. 變更資料擷取 (CDC) 階段:套用限制後,資料庫遷移服務會進入持續 CDC 階段。在 CDC 期間,資料庫遷移服務會從 pgnative PostgreSQL 邏輯複製串流,串流傳輸進行中的 DML 變更,並近乎即時地套用至目的地叢集。如果資料表沒有主鍵,只要將資料表的副本身分設為 INDEX 或 FULL,即可複製 UPDATE 和 DELETE 作業。
  6. 轉換和升級階段:準備好將應用程式流量切換至目的地叢集時,請停止寫入來源資料庫,確認複製延遲時間達到零,並在資料庫遷移服務中啟動升級。在升級期間,資料庫遷移服務會完成 CDC 複製作業、終止複製槽,並卸載遷移管道,讓用戶端連線能完整使用 AlloyDB for PostgreSQL 目的地資料庫。

後續步驟