透過同質資料移轉,從 PostgreSQL 資料庫移轉資料 AWS DMS - AWS Database Migration Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

透過同質資料移轉,從 PostgreSQL 資料庫移轉資料 AWS DMS

您可以使用 同質資料遷移 將自我管理的 PostgreSQL 資料庫遷移到 RDS for PostgreSQL 或 Aurora PostgreSQL。 AWS DMS 會為您的資料遷移建立無伺服器環境。對於不同類型的資料遷移, AWS DMS 將使用不同的原生 PostgreSQL 資料庫工具。

對於「完全負載」類型的同質資料移轉,請 AWS DMS 使用 pg_dump 從來源資料庫讀取資料,並將其儲存在連接到無伺服器環境的磁碟上。 AWS DMS 讀取所有源數據後,它使用目標數據庫中的 pg_restore 來恢復數據。

對於「完整負載和變更資料擷取 (CDC)」類型的同質資料移轉, AWS DMS 會使用pg_dump在沒有來源資料庫表格資料的情況下讀取結構描述物件,並將它們儲存在連接到無伺服器環境的磁碟上。然後,它會pg_restore在目標資料庫中使用來還原結構描述物件。 AWS DMS 完成此pg_restore程序之後,它會自動切換至發行者和訂閱者模型以進行邏輯複製,並可Initial Data Synchronization選擇將初始表格資料直接從來源資料庫複製到目標資料庫,然後啟動進行中的複寫。在此模型中,一或多個訂閱用戶訂閱了發布者節點上的一或多個發布項目。

對於「變更資料擷取 (CDC)」類型的同質資料移轉, AWS DMS 需要原生起點才能啟動複寫。如果您提供原生起點,則會從該點 AWS DMS 擷取變更。或者,若在資料遷移設定中選擇立即,便可在實際資料遷移開始時自動擷取複寫的起點。

注意

若要讓僅限 CDC 遷移正常運作,所有來源資料庫的結構描述和物件都必須已存在於目標資料庫中。不過,目標可以包含不存在於來源上的物件。

您可以使用下列程式碼範例,取得 PostgreSQL 資料庫中的原生起始點。

select confirmed_flush_lsn from pg_replication_slots where slot_name=‘migrate_to_target';

此查詢會使用 PostgreSQL 資料庫中的 pg_replication_slots 檢視來擷取日誌序號 (LSN) 值。

將 PostgreSQL 同質資料遷移的狀態 AWS DMS 設定為 [已停止]、[失敗] 或 [已刪除] 之後,不會移除發行者和複寫。如果您不想繼續遷移,請使用下列命令刪除複寫插槽和發布者。

SELECT pg_drop_replication_slot('migration_subscriber_{ARN}'); DROP PUBLICATION publication_{ARN};

下圖顯示在中使用同質資料移轉,將 PostgreSQL 資料庫移轉 AWS DMS 至 RDS 版或 Aurora PostgreSQL 的程序。

使用 DMS 同質資料遷移進行 PostgreSQL 資料遷移的架構圖。