最近在看TiDB的系统管理课程,对TiDB周边的配套工具做了一下了解,今天总结下。
01
备份恢复工具
TiDB的备份方法有好几种,通常情况下,我们按照对业务的影响程度,将备份分为热备份、温备份和冷备份,其中:
而按照备份出来的文件类型,又可以将备份分为逻辑备份和物理备份,其中逻辑备份指的是备份的文件是SQL语句,而物理备份则是简单的数据拷贝。
在TiDB中,逻辑备份+数据恢复可以使用下面两个工具来进行:
Dumpling:逻辑备份
TiDB Lighting:数据恢复
如果大家有mysql的基础,其实不难理解,在MySQL中,我们可以利用mysqldump工具来对MySQL数据库进行逻辑备份,然后使用mysql客户端进行数据恢复。在TiDB中,可以简单理解,Dumpling工具扮演的就是mysqldump的角色,而TiDB Lighting扮演的是mysql客户端角色。
这种备份方法的优势是:
1、它备份的文件是个SQL文件,可以将备份文件应用在另外一个兼容MySQL协议的数据库上
2、同时它还可以直接备份MySQL数据库。
如果我们需要对TiDB进行物理备份,则可以使用BR工具来进行备份。
BR工具(backup and restore)是TiDB分布式备份恢复的命令行工具,用于对TiDB集群进行数据备份和恢复。它适用于大数据量下的备份,而且备份速度较快。
下面是TiDB备份恢复工具和MySQL的对比:
通常情况下,TiDB选择备份方式的流程图,可以借鉴下图:
02
数据迁移工具
TiDB DM工具是一体化的数据迁移任务管理工具,它支持从兼容MySQL协议的数据库到TiDB的数据迁移。支持全量和增量数据传输,同时可以对库表进行过滤,还可以进行分库分表的合并操作。
DM工具迁移数据的架构图如下:
图中,紫色部分为源端MySQL、MariaDB数据库,红色部分为目标端TiDB数据库,DM工具有一个高可用的架构,通过解析MySQL、MariaDB等上游数据库的binlog,将数据流转到TiDB Cluster中。
将上面的图进行抽象,就是下面:
其中中间的三个部分就是我们在DM工具中需要做的三个配置。分别是:库表过滤配置、binlog事件配置以及库表路由。
到这里不难理解,DM工具旨在将兼容MySQL协议的数据库数据流转到目标TiDB集群。
那如果我们需要反向流转,也就是从TiDB数据库流转到MySQL数据库,这个时候应该怎么办?
我们可以使用TiDB Binlog工具或者TiCDC工具。
由于TiDB Binlog工具在TiDB 5.0 之后已经不推荐使用,这里我们弱化它,只介绍下TiCDC工具。
TiCDC工具是一款通过拉取TiKV变更日志实现TiDB增量数据同步工具。
简单理解,它适合上游数据库是TiDB,下游数据库是兼容MySQL协议的异构数据库或者kafka,它可以为监控、缓存、全文索引、分析引擎、异构数据库的主从复制等提供数据源。
注意:
DM工具是数据迁移工具,支持数据的全量+增量同步,同时可以进行库表过滤、合并、binlog过滤等。
TiCDC是一款数据同步工具,仅支持拉取TiKV的数据变更,不支持存量数据的同步。
二者的定位不相同。