课程名称:3.6.1 Data migration tools introduction (TiDB 数据迁移工具介绍)
学习时长:1h
课程收获:
了解Dumpling、Lightning、DM2.0的用途、架构和工作原理
课程内容:
Dumpling
1、可以把MySQl、TiDB导出成CSV或sql的格式,可以完成逻辑上的全量备份和导出
2、Go开发的数据库备份工具
3、支持多种数据格式,数据筛选更加方便,针对TiDB有很多优化
a,配置单条sql的内存控制
b,支持4.0.0以上版本调整备份GC时间
c,使用TiDB隐藏列,优化了单表并发导出数据的性能
d,设置tidb_snapshot设置备份数据的时间点,保证数据的一致性
Lightning
1、Lightning是将全量数据高速导入到TiDB集群的工具
2、使用场景:
a、大量新数据的快速导入。
b、全量数据备份的恢复
3、工作原理:导入数据前,将TiKV切换到导入模式,优化写入效率,并停止压缩,在目标数据库建立架构和表并获取其元数据,每张表都会被分割为多个连续的区块,这样200GB以上的大表可以用增量的方式并行导入,会为每一个区块准备一个引擎文件来处理键值对,会并发读取sql dump,将数据源转换成与TiDB相同编码的键值对,将键值对排序,写入本地临时存储的文件中,当写入完成时,就会进行分类和调度,然后导入数据到TiKV集群中,引擎文件包括两种,数据引擎和索引引擎,各自对应两种键值对,行数据和次级索引,行数据是有序的,次级索引是无序的,数据引擎文件在区块写入完毕会被立即上传,整张表只有在区块编码完成后才开始导入,整张表的所有引擎文件导入完成后,ligthning会对比本地数据源和下游集群的校验,确保导入和数据的无损,然后TiDB分析新增的数据,优化日后的操作,Lightning调整整个自增的值,防止新增的值发生冲突,表的自增id是通过行数的上界估计值得到的,与表的数据文件大小成正比,所有步骤完成后,Lightning将TiKV切成普通模式
DM2.0
1、DM是一体化迁移的管理平台,支持MySQL/MariaDB到TiDB的全量数据迁移和增量数据复制,有利于简化错误处理流程,降低整体运维成本。
2、功能:
a、table routing,指定上游MySQL或MariaDB的某些表
b、黑白名单过滤,可以过滤某些库,某些表
c、binlog event过滤
d、在线DDL
e、分库分表的合并迁移功能
3、架构:
a、DMmaster负责管理调度数据迁移的任务和各项操作,保存监控集群的拓扑信息,监控DMwork的运行状态,监控数据迁移任务的运行状态,提供数据迁移任务的统一入口,协调分库分表的迁移
b、DMwork负责执行具体的数据迁移任务,将binlog数据持久化保存到本地,保存数据迁移子任务的配置信息,编排数据迁移子任务的运行,监控数据迁移子任务的运行状态
学习过程中遇到的问题或延伸思考:
- 问题 1:
- 问题 2:
- 延伸思考 1:
- 延伸思考 2: