的元件 AWS DMS - AWS 資料庫遷移服務

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

的元件 AWS DMS

本節說明 的內部元件 AWS DMS ,以及它們如何一起運作以完成資料遷移。了解 AWS DMS 的基礎元件可協助您更有效率的移轉資料,並可在故障診斷或調查問題時提供更佳的詳情。

AWS DMS 遷移包含五個元件:探索要遷移的資料庫、自動結構描述轉換、複寫執行個體、來源和目標端點,以及複寫任務。您可以透過在 中建立必要的複寫執行個體、端點和任務來建立 AWS DMS 遷移 AWS 區域。

資料庫探索

DMS Fleet Advisor 會從多個資料庫環境收集資料,以提供資料基礎設施的深入分析。DMS Fleet Advisor 會從一或多個中央位置收集內部部署資料庫和分析伺服器的資料,而不需要在每部電腦都安裝此功能。DMS Fleet Advisor 目前支援 Microsoft SQL Server、MySQL、Oracle 和 PostgreSQL 資料庫伺服器。

根據從網路探索到的資料,DMS Fleet Advisor 會建立供您檢閱的詳細目錄,以判斷要監控哪些資料庫伺服器和物件。收集與這些伺服器、資料庫和結構描述相關的詳細資訊時,您可以分析預計進行的資料庫遷移是否可行。

結構描述與程式碼遷移

中的 DMS 結構描述轉換 AWS DMS 可讓不同類型的資料庫之間的資料庫遷移更可預測。您可以使用 DMS 結構描述轉換,為來源資料提供者評估遷移的複雜性,然後使用其來轉換資料庫結構描述和程式碼物件。您接著可將轉換後的程式碼套用至目標資料庫。

從較高的層級來說,DMS 結構描述轉換會使用下列三個元件運作:執行個體設定檔、資料提供者和遷移專案。執行個體設定檔會指定網路和安全性設定。資料提供者會儲存資料庫連線憑證。遷移專案包含資料提供者、執行個體描述檔和遷移規則。 AWS DMS 使用資料提供者和執行個體描述檔來設計轉換資料庫結構描述和程式碼物件的程序。

Replication instance (複寫執行個體)

在高階, AWS DMS 複寫執行個體只是託管一或多個複寫任務的受管 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

下圖顯示了範例複寫執行個體,該執行個體正在執行數個相關聯的複寫任務。

開始使用 AWS DMS

單一複寫執行個體可以託管一或多個複寫任務,具體取決於遷移的特性和複寫伺服器的容量。 AWS DMS 提供各種複寫執行個體,讓您可以為使用案例選擇最佳組態。如需各種複寫執行個體類別的詳細資訊,請參閱為您的遷移選擇正確的 AWS DMS 複寫執行個體

AWS DMS 在 Amazon EC2 執行個體上建立複寫執行個體。某些較小的執行個體類別便已足夠用於測試服務或較小的遷移。若您的遷移涉及大量資料表,或是您想要執行多個同時複寫任務,建議您考慮使用其中一個較大的執行個體。我們建議使用此方法,因為 AWS DMS 可能會使用大量的記憶體和 CPU。

根據您選取的 Amazon EC2 執行個體類別,複寫執行個體可能包含 50 GB 或 100 GB 的資料儲存。此數量對大多數的客戶來說便已足夠。但是,若您的移轉涉及大型交易或是大量的資料變更,您可能會希望增加基礎儲存體配置。變更資料擷取 (CDC) 可能會導致資料寫入磁碟,取決於目標寫入變更的速度。由於日誌檔也會寫入磁碟,因此提高記錄的嚴重性層級也會導致儲存耗用量上升。

AWS DMS 可以使用異地同步備份部署提供高可用性和容錯移轉支援。在異地同步備份部署中, AWS DMS 自動佈建和維護不同可用區域中複寫執行個體的待命複本。主要複寫執行個體會同步複寫至待命複本。若主要複寫執行個體失敗或沒有回應,待命會繼續任何執行中的任務,將插斷降至最低。因為主要複寫執行個體會持續將其狀態複寫到待命複本,異地同步備份部署確實會造成一些效能上的額外負荷。

如需 AWS DMS 複寫執行個體的詳細資訊,請參閱 使用 AWS DMS 複寫執行個體

您可以讓 使用 AWS DMS Serverless 自動 AWS DMS 佈建複寫,而不是建立和管理複寫執行個體。如需詳細資訊,請參閱使用 AWS DMS Serverless

端點

AWS DMS 使用 端點來存取您的來源或目標資料存放區。根據您的資料存放區,特定連線資訊會不同,但一般而言您會在建立端點時提供以下資訊:

  • 端點類型 – 來源或目標。

  • 引擎類型 – 資料庫引擎類型,例如 Oracle 或 PostgreSQL。

  • 伺服器名稱 – AWS DMS 可連線的伺服器名稱或 IP 地址。

  • 連接埠 – 用於資料庫伺服器連線的連接埠號碼。

  • 加密 – Secure Socket Layer (SSL) 模式 (如果使用 SSL 來加密連線)。

  • 憑證 – 具備必要存取權限的帳戶使用者名稱和密碼。

當您使用 AWS DMS 主控台建立端點時,主控台會要求您測試端點連線。在 AWS DMS 任務中使用端點之前,測試必須成功。與連線資訊相似,特定測試條件會因引擎類型而不同。一般而言, AWS DMS 會驗證資料庫在指定的伺服器名稱和連接埠上是否存在,以及所提供的登入資料是否可用來連線到資料庫,並且是否具備必要的權限來執行移轉。如果連線測試成功, AWS DMS 請下載並存放結構描述資訊,以供稍後在任務組態期間使用。例如,架構資訊可能包含資料表定義、主索引鍵定義和唯一索引鍵定義。

多個複寫任務可以使用單一端點。例如,您可能會擁有託管於相同來源資料庫上,兩個您想要分別進行移轉且邏輯不同的應用程式。在此情況下,您會建立兩個複寫任務,每組應用程式資料表會有一個任務。您可以在這兩個任務中使用相同的 AWS DMS 端點。

您可以使用端點設定來自訂端點的行為。端點設定可以控制各種行為,例如記錄詳細資訊、檔案大小及其他參數。每個資料存放區引擎類型都有不同的可用端點設定。您可以在該資料存放區的來源或目標區段中,找到每個資料存放區的特定端點設定。如需支援的來源及目標資料存放區清單,請參閱 的來源 AWS DMS的目標 AWS DMS

如需 AWS DMS 端點的詳細資訊,請參閱 使用 AWS DMS 端點

複寫任務

您可以使用 AWS DMS 複寫任務,將一組資料從來源端點移至目標端點。建立複寫任務是您在啟動遷移前所需要執行的最後一個步驟。

當您建立複寫任務時,您需要指定下列任務設定:

  • 複寫執行個體 – 託管及執行任務的執行個體

  • Source endpoint (來源端點)

  • Target endpoint (目標端點)

  • 遷移類型選項,如下所列。如需遷移類型選項的完整解釋,請參閱建立任務

    • 完全載入 (遷移現有資料) – 若您可以承受足夠長時間的中斷以複製現有資料,此選項便是值得選擇的良好選項。此選項會直接將您的資料從來源資料庫遷移到目標資料庫,並視需要建立資料表。

    • 完全載入 + CDC (遷移現有資料並複寫持續進行的變更) – 此選項會執行完整資料載入,同時擷取來源上的變更。完全載入完成之後,所擷取的變更便會套用到目標。最後,套用變更會達到穩定狀態。此時,您可以關閉應用程式,讓剩餘的變更流向目標,然後重新啟動您指向目標的應用程式。

    • 僅 CDC (僅複寫變更的資料) – 在某些情況下,使用 AWS DMS之外的方法複製現有資料可能會更有效率。例如,在同質移轉中,使用原生匯出及匯入工具可能會比載入大量資料更有效率。在這種情況下,您可以使用 AWS DMS 複寫從開始大量載入時開始的變更,以保持來源和目標資料庫的同步。

  • 目標資料表準備模式選項,如下所列。如需目標資料表模式的完整解釋,請參閱建立任務

    • 什麼都不做 – AWS DMS 假設目標資料表是在目標上預先建立。

    • 在目標上捨棄資料表 – AWS DMS 捨棄並重新建立目標資料表。

    • 截斷 – 若您在目標上建立資料表, AWS DMS 會在開始遷移前將其截斷。如果沒有資料表,且您選取此選項, 會 AWS DMS 建立任何缺少的資料表。

  • LOB 模式選項,如下所列。如需 LOB 模式的完整解釋,請參閱設定 AWS DMS 任務中來源資料庫的 LOB 支援

    • 請勿包含 LOB 欄 – LOB 欄會從遷移中排除。

    • 完整 LOB 模式 – 無論大小為何,都要分段遷移完整的 LOBs。以由最大 LOBs 大小參數控制的區塊形式 AWS DMS 遷移 LOB。 此模式比使用有限 LOB 模式慢。

    • 有限 LOB 模式 – 截斷 LOB 至 LOB 大小上限參數指定的值。此模式比使用完整 LOB 模式快。

  • 資料表對應 – 指出要遷移的資料表及如何遷移這些資料表。如需詳細資訊,請參閱使用資料表映射指定任務設定

  • 資料轉換,如下所列。如需資料轉換的詳細資訊,請參閱 使用 JSON 指定資料表選擇及轉換

    • 變更結構描述、資料表和欄名稱。

    • 變更資料表空間名稱 (適用於 Oracle 目標端點)。

    • 在目標上定義主索引鍵和唯一索引。

  • 資料驗證

  • Amazon CloudWatch 記錄

您可以使用任務來將資料從來源端點遷移到目標端點,並且任務處理會在複寫執行個體上完成。您可以指定要遷移及進行任何特殊處理的資料表及結構描述,例如日誌記錄需求、控制資料表資料及錯誤處理。

從概念上來看, AWS DMS 複寫任務會執行兩個不同的函數,如下圖所示。

開始使用 AWS DMS

完全載入程序非常直接且容易了解。資料會以大量擷取的方式從來源擷取,並直接載入目標。您可以在進階設定下,指定要在 AWS DMS 主控台上平行擷取和載入的資料表數目。

如需 AWS DMS 任務的詳細資訊,請參閱 使用 AWS DMS 任務

進行中複寫,或變更資料擷取 (CDC)

您也可以在將資料遷移至目標時,使用 AWS DMS 任務來擷取來源資料存放區的持續變更。從來源端點複寫持續變更時 AWS DMS 所使用的變更擷取程序,會使用資料庫引擎的原生 API 來收集資料庫日誌的變更。

在 CDC 程序中,複寫任務旨在使用記憶體內緩衝區保留傳輸中的資料,來將變更從來源串流到目標。若記憶體內緩衝區因任何原因而不足,則複寫任務會將任何擱置中的變更溢出到磁碟上的變更快取。例如,如果 從來源 AWS DMS 擷取變更的速度超過可套用至目標的速度,則可能會發生這種情況。在這種情況下,您會看到任務的目標延遲超過任務的來源延遲

您可以在 AWS DMS 主控台上導覽至您的任務,然後開啟任務監控索引標籤來檢查此項目。CDCLatencyTarget 和 CDCLatencySource 圖會顯示在頁面的底部。若您有顯示目前延遲的任務,表示目標端點上可能有些調校需要增加套用率。

複寫任務也會如先前所討論,針對任務日誌使用儲存體。您複寫執行個體隨附的預先設定磁碟空間通常便已足夠用於日誌記錄和溢出變更。若您需要額外的磁碟空間 (例如當您使用詳細除錯來調查遷移問題時),您可以修改複寫執行個體來配置更多空間。