TiDB Lightning 支持以下后端:
- Local-backend
- Importer-backend
- TiDB-backend
以上几种后端导入数据的区别如下:
- Local-backend:tidb-lightning 先将数据编码成键值对并排序存储在本地临时目录,然后将这些键值对以 SST 文件的形式上传到各个 TiKV 节点,然后由 TiKV 将这些 SST 文件 Ingest 到集群中。和 Importer-backend 原理相同,不过不依赖额外的 tikv-importer 组件。
- Importer-backend:tidb-lightning 先将 SQL 或 CSV 数据编码成键值对,由 tikv-importer 对写入的键值对进行排序,然后把这些键值对 Ingest 到 TiKV 节点中。
- TiDB-backend:tidb-lightning 先将数据编码 成 INSERT 语句,然后直接在 TiDB 节点上运行这些 SQL 语句进行数据导入
- 如何选择后端模式
如何选择后端模式
- 如果导入的目标集群为 v4.0 或以上版本,请优先考虑使用 Local-backend 模式。Local-backend 部署更简单并且性能也较其他两个模式更高
- 如果目标集群为 v3.x 或以下,建议使用 Importer-backend 模式
- 如果需要导入的集群为生产环境线上集群,或需要导入的表中已包含有数据,则最好使用 TiDB-backend 模式
此外,目标 TiKV 集群必须有足够空间接收新导入的数据。除了标准硬件配置以外,目标 TiKV 集群的总存储空间必须大于 数据源大小 × 副本数量 × 2。例如集群默认使用 3 副本,那么总存储空间需为数据源大小的 6 倍以上。
1、dumpling 导出数据
./bin/dumpling -uDM -p'$password' -h$host -P3306 --filetype sql --threads 16 -B database -s 1000000 --tidb-mem-quota-query 10485760 -o /data/my_datasource/ > dumpling1.log 2>&1 &
2、部署TiDB Lightning
1)部署tidb
2)下载 TiDB Lightning 安装包
3)数据源写入和tidb-lightning同样机器
4)配置 tidb-lightning.toml,sorted-kv-dir需要设置为一个空的目录
3、运行 tidb-lightning。如果直接在命令行中用 nohup 启动程序,可能会因为 SIGHUP 信号而退出,建议把 nohup 放到脚本里面:
#!/bin/bash
nohup ./bin/tidb-lightning -config ./conf/tidb-lightning.toml > nohup.out &
问题:
1、TiDB Lightning会计算所需空间,如果不够则失败
2、清理之前任务断点等信息
tidb-lightning-ctl --checkpoint-remove=all --config=../conf/tidb-lightning.toml




