如何熟悉TiDB Data Migration?

TiDB

1 基础知识

1.1 软件简介

– TiDB DM的英文全称为TiDB Data Migration
– TiDB DM是一款便捷的数据迁移工具
– TiDB DM支持从MySQL协议兼容的数据库(MySQL、MariaDB、Aurora MySQL)到TiDB的全量数据迁移和增量数据同步。
– TiDB DM可以简化迁移工程、降低数据迁移成本。

2.1 产品特点

– TiDB高度兼容MySQL协议
– TiDB DM支持解析和同步binlog的DML和DDL事件
– TiDB DM支持合库合表同步模式
– TiDB DM支持预定义事件类型、正则表达式、SQL表达式等多种方式在数据同步过程中对MySQL事件进行过滤
– TiDB DM支持上千个节点的集群,支持同时运行并集中管理大量数据迁移同步。
– TiDB DM对gh-ost和pt-osc等工具进行特殊优化,可避免不必要的中间数据库进行迁移。
– TiDB DM支持高可用,在不同就诶点自由调度,少量工作节点宕机不影响进行中的任务。

2.2 使用限制

– 仅支持MySQL 5.6 ~ 8.0
– 仅支持mariaDB >= 10.1.2(如果MySQL或MariDB主从结构则MySQL > 5.7.1或MariaDB >= 10.13)
– 仅支持TiDB parser支持的DDL语法,详见TiDB DDL语法支持
– 仅支持部分字符集,DM v5.4.0之前不支持将charset=GBK的表迁移至TiDB
– 仅支持Binlog旧功能,不支持MySQL 8.0的新特性binlog事务压缩
– 仅支持非向量类型数据同步,DM不支持迁移或同步MySQL 9.0的向量数据类型到TiDB

2 最佳实践

2.1 部署tidb集群环境

如何安装部署TiDB集群?

2.2 安装配置DM

2.2.1 切换身份

In hd24

su - tidb

2.2.2 安装dm和dmctl组件

In hd24

tiup install dm dmctl

2.2.3 创建DM集群配置文件

In hd24

cd /data/tidb/install/config-yaml
vim dm.yaml

加入如下配置,

global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/data/tidb/dm-deploy"
  data_dir: "/data/tidb/dm-data"
  arch: "amd64"
server_configs:
  master:
    openapi: true
    log-level: info
  worker:
    log-level: info
master_servers:
  - host: hd24.cmdschool.org
    name: master1
    deploy_dir: "/data/tidb/dm-deploy/dm-master-8261"
    data_dir: "/data/tidb/dm-data/dm-master-8261"
    log_dir: "/data/tidb/dm-deploy/dm-master-8261/log"
    config:
      log-level: info
worker_servers:
  - host: hd25.cmdschool.org
    deploy_dir: "/data/tidb/dm-deploy/dm-worker-8262"
    log_dir: "/data/tidb/dm-deploy/dm-worker-8262/log"
    config:
      log-level: info

2.2.4 部署DM集群

In hd24

tiup dm deploy dm-cluster v8.5.1 ./dm.yaml -u tidb -i ~/.ssh/id_rsa

然后,你可以使用如下命令查看部署的DM集群列表,

tiup dm list

然后,你可以使用如下命令查看部署的DM集群状态,

tiup dm display dm-cluster

注:由于集群尚未启动,因此会出现“Down”或“N/A”状态

2.2.5 启动DM集群

In hd24

tiup dm start dm-cluster

然后,你可以再次使用如下命令查看部署的集群状态,

tiup dm display dm-cluster

正常的集群,可见如下信息,

Starting component dm: /home/tidb/.tiup/components/dm/v1.16.1/tiup-dm display dm-cluster
Cluster type:       dm
Cluster name:       dm-cluster
Cluster version:    v8.5.1
Deploy user:        tidb
SSH type:           builtin
ID                       Role       Host                Ports      OS/Arch       Status     Data Dir                           Deploy Dir
--                       ----       ----                -----      -------       ------     --------                           ----------
hd24.cmdschool.org:8261  dm-master  hd24.cmdschool.org  8261/8291  linux/x86_64  Healthy|L  /data/tidb/dm-data/dm-master-8261  /data/tidb/dm-deploy/dm-master-8261
hd25.cmdschool.org:8262  dm-worker  hd25.cmdschool.org  8262       linux/x86_64  Free       /data/tidb/dm-data/dm-worker-8262  /data/tidb/dm-deploy/dm-worker-8262
Total nodes: 2

参阅文档
=================
https://docs.pingcap.com/zh/tidb/stable/dm-overview/

没有评论

发表回复

TiDB
如何熟悉TiDB集群的常用命令?

1 前言 一个问题,一篇文章,一出故事。 笔者最近学习了TiDB集群, 如何安装部署TiDB集群? …

TiDB
如何缩容TiDB 集群?

1 前言 一个问题,一篇文章,一出故事。 上一章节笔者做了扩展集群节点的实验,本章进行扩展的逆向操作 …

TiDB
如何扩容TiDB 集群?

1 前言 一个问题,一篇文章,一出故事。 笔者最近测试了TiDB集群,目前尝试基于该集群扩容节点。 …