1.介绍
2.原理和架构
DM-master负责管理和调度数据迁移任务的各项操作。
DM-worker负责执行具体的数据迁移任务。
多个master,多个worker分别构成一个集群(高可用),对外提供服务。
一个DM-worker对应一个源数据库。
3.适用场景
DM支持全量和增量的数据迁移,能够支持异构数据库表的迁移;DM迁移是异步迁移,源库的修改在目标库上不一定马上能够看到。
4.使用TiUP部署DM集群
4.1 编辑初始化配置文件
4.2 执行部署命令
4.3 查看集群
4.4 查看集群状态
4.5 启动集群
5.DM的配置
(1)MySQL:获取登录信息,需要开Binlog
(2)Data Filter:数据过滤。Table block and Allow Lists(表,库)、Binlog Event Filter(操作)
(3)Table Routing: 表路由,表的映射。
5.1 上游数据库的配置(Mysql)
mysql需要写一个配置文件,例如:source1.yml
用以下命令将数据源载入到DM中。
tiup dmctl --master add (PD) operate - source create source1.yml
5.2 任务配置
写一个task.yaml文件。
task-mode:all(全量+增量)
block-allow-list:配置对哪些表进行过滤。用于过滤对于某些数据库或表的所有操作。
filter-rule:配置哪些操作的过滤。用于过滤源数据库中特定表的特定操作。
(1)表、库的过滤
(2)操作的过滤(Binlog event filter)
(3)源表和目标表的对应关系(table routings)
(4)分库分表合并迁移
5.3 检查与启动任务
5.4 暂停任务
5.5 任务恢复
5.6 查询任务
5.7 停止任务
6 性能优化
chunk-filesize默认64M
pool-size并发导入的线程数,默认是16。
worker-count:默认是16
7.常见问题
8.DM使用限制
9 随堂练习
(1)
答案:AD
解析:DM工具支持异构表的迁移,DM既能做全量迁移,也支持增量迁移。
(2)
答案:ACE
解析:Block &Allow Table Lists 用于库、表的过滤,Binlog event filter 用于过滤源数据库中特定表的特定类型操作(对操作进行过滤)。