TiDB Lightning 教程
- 迅速导入大量新数据。
- 备份恢复所有数据。
TiDB Lightning 主要包含两个部分:
tidb-lightning
(“前端”):主要完成适配工作,通过读取数据源,在下游 TiDB 集群建表、将数据转换成键/值对 (KV 对) 发送到tikv-importer
、检查数据完整性等。tikv-importer
(“后端”):主要完成将数据导入 TiKV 集群的工作,把tidb-lightning
写入的 KV 对缓存、排序、切分并导入到 TiKV 集群。
本教程假设使用的是若干新的、纯净版 CentOS 7 实例,你可以(使用 VMware、VirtualBox 及其他工具)在本地虚拟化或在供应商提供的平台上部署一台小型的云虚拟主机。因为 TiDB Lightning 对计算机资源消耗较高,建议分配 4 GB 以上的内存。
我们使用 mydumper
从 MySQL 导出数据,如下:
-B test
:从test
数据库导出。- :只导出
t1
和t2
这两个表。 -t 16
:使用 16 个线程导出数据。--skip-tz-utc
:添加这个参数则会忽略掉 TiDB 与导数据的机器之间时区设置不一致的情况,禁止自动转换。
这样全量备份数据就导出到了 /data/my_database
目录中。
在开始数据导入之前,需先部署一套要进行导入的 TiDB 集群(版本要求 2.0.9 以上),本教程使用 TiDB 3.0.4 版本。部署方法可参考 。
通过以下链接获取 TiDB Lightning 安装包(选择与 TiDB 集群相同的版本):
将安装包里的
bin/tikv-importer
上传至部署 TiDB Lightning 的服务器。配置 。
运行
tikv-importer
。
将数据源也上传到同样的服务器。
导入完毕后,TiDB Lightning 会自动退出。若导入成功,日志的最后一行会显示 tidb lightning exit
。
如果出错,请参见 。
本教程对 TiDB Lightning 进行了简单的介绍,并快速部署了一套简单的 TiDB Lightning 集群,将全量备份数据导入到 TiDB 集群中。
关于 TiDB Lightning 的详细功能和使用,参见 TiDB Lightning 简介。