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
原文地址:https://www.cnblogs.com/binliubiao/p/14300289.html