【TiDB 4.0 PCTA 学习笔记】- 3.6.1 Data migration tools introduction @2班+马志林

课程名称:【TiDB 4.0 PCTA 学习笔记】- 3.6.1 Data migration tools introduction (TiDB 数据迁移工具介绍)

学习时长:10m

课程收获:

学习TiDB相关的数据迁移工具

课程内容:

一、Dumping
1、支持TiDB 和 MySQL
2、Dumping 的优点:
支持多种数据导出形式,sql和csv
支持全新的表过滤,数据筛选更便利
支持配置TiDB单条SQL的内存限制,避免OOM
4.0以上版本自动支持调整TiDB的GC时间
使用TiDB的隐藏列 _tidb_rowid 优化单表内存数据库的并发导出性能
支持设置 tidb_snapshot指定导出时间点,从而保持数据的一致性(而不是通过 flush tables with read lock实现)

二、TiDB Lightning
1、TiDB Lightning 是一个可以快速将全量数据导入TiDB的工具。
支持mydumper导出的数据源 和 csv数据源格式

2、使用场景:
大量新数据的快速导入
全量备份数据的恢复

3、架构图


TiDB Lightning 会自动将TiKV切为 导入模式,优化写入效率,停止自动压缩,
并且在目标数据库建立架构和表,获取其元数据,
每张表会被分割为连续的区块(200G以上的大表可以用增量的形式,并行导入),
TiDB Lightning 会为每一个区块准备一个引擎文件,来处理 键值对,
并发读取SQL Dump,将数据源转换成与TiDB相同编码的键值对,排序,写入本地临时存储文件中,
当临时文件写入完毕,TiDB Lightning 会将TiKV的数据进行分裂和调度,然后倒入数据到整个TiKV集群中。

引擎文件包含两种:索引引擎和数据引擎,各自有两种键值对,
行数据通常是有序的,次级索引是无序的,所以数据文件会立即上传,而索引则在整张表导入后再上传
完成后,TiDB Lightning 会进行校验,确保数据无损。
并且会调整自增值,防止发生冲突,表的自增id,不一定是连续分配的。

TiDB Lightning ,最后会将TiKV 切回普通模式,TIDB可以正常对外提供服务。

三、TiDB Data Migration
1、DM 是一体化的数据迁移任务管理平台
支持从MySQL/MariaDB到TiDB的全量数据迁移和增量数据复制

2、DM功能
支持表路由,将上游库表指定导入下游的库表(不同库表名字)
黑白名单过滤库表
binlog event 过滤
DM的在线DDL功能
分库分表的合并迁移功能

3、DM2.0架构


DM-master 监控各组件状态、提供数据迁移统一入口、协调各分库分表的各实例DDL迁移
DM-worker 执行具体迁移任务、数据持久话、迁移子任务编排 等
dmctl 命令行工具