TiDB-DM數據遷移工具


TiDB Data Migration

TiDB Data Migration (DM)是將 MySQL/MariaDB 數據遷移到 TiDB 的工具,支持全量數據和增量數據的遷移。使用 DM 工具有利於簡化錯誤處理流程,降低運維成本。

架構

DM 主要包括三個組件:DM-master,DM-worker 和 dmctl。

img

組件的職責

DM-master

DM-master 負責管理和調度數據遷移任務的各項操作。

  • 保存 DM 集群的拓撲信息
  • 監控 DM-worker 進程的運行狀態
  • 監控數據遷移任務的運行狀態
  • 提供數據遷移任務管理的統一入口
  • 協調分庫分表場景下各個實例分表的 DDL 遷移
DM-worker

DM-worker 是 DM (Data Migration) 的一個組件,負責執行具體的數據遷移任務。

  • 將 binlog 數據持久化保存在本地
  • 保存數據遷移子任務的配置信息
  • 編排數據遷移子任務的運行
  • 監控數據遷移子任務的運行狀態
主要功能
  • 注冊為一台 MySQL 或 MariaDB 服務器的 slave。
  • 讀取 MySQL 或 MariaDB 的 binlog event,並將這些 event 持久化保存在本地 (relay log)。
  • 單個 DM-worker 支持遷移一個 MySQL 或 MariaDB 實例的數據到下游的多個 TiDB 實例。
  • 多個 DM-Worker 支持遷移多個 MySQL 或 MariaDB 實例的數據到下游的一個 TiDB 實例。
處理單元

DM-worker 任務包含如下多個邏輯處理單元

  • Relay log

    Relay log 持久化保存從上游 MySQL 或 MariaDB 讀取的 binlog,並對 binlog replication 處理單元提供讀取 binlog event 的功能

  • dump 處理單元

    dump 處理單元從上游 MySQL 或 MariaDB 導出全量數據到本地磁盤。

  • load 處理單元-

    load 處理單元讀取 dump 處理單元導出的數據文件,然后加載到下游 TiDB。

  • Binlog replication/sync 處理單元

    Binlog replication/sync 處理單元讀取上游 MySQL/MariaDB 的 binlog event 或 relay log 處理單元的 binlog event,將這些 event 轉化為 SQL 語句,再將這些 SQL 語句應用到下游 TiDB

dmctl

dmctl 是用來控制 DM 集群的命令行工具。

  • 創建、更新或刪除數據遷移任務
  • 查看數據遷移任務狀態
  • 處理數據遷移任務錯誤
  • 校驗數據遷移任務配置的正確性

DM軟件安裝部署

下載軟件

curl -sSL -C - -O https://download.pingcap.org/dm-latest-linux-amd64.tar.gz
curl -sSL -C - -O https://download.pingcap.org/dm-latest-linux-amd64.sha256

安裝配置

tar -xf dm-latest-linux-amd64.tar.gz
cd dm*

配置環境變量

DM_PATH=`pwd` && export PATH=$PATH:$DM_PATH/bin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM