tidblightning导入200GB数据失败

【 TiDB 使用环境`】测试环境
【 TiDB 版本】v6.1.0
【遇到的问题】tidblightning导入200GB数据失败,数据是通过dumpling从mysql8导出的
【复现路径】执行sql导入命令 tiup tidb-lightning -config tidb-lightning.toml
tidb-lightning.toml 配置如下


【问题现象及影响】
tidb-lightning导入 200多GB数据,在数据转换时看起来正常,但是消耗比较长的时间。 转换后导入TIDB失败,监控如图
【附件】
部署方式参考的单机模拟生产环境部署:https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb#在单机上模拟部署生产环境集群



若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1.检查一下tidb,pd是否重启
2.检查网络

重启下集群吧,全是 timeout。另外想问一下你的配置文件在哪里拿到的,disk-quota 这种功能文档里没有的吧(这个值会影响导入效率的)?

这个在文档中是有的,我参考的就是操作文档中的toml配置,因为在导入的时候,备份数据存储盘和排序的磁盘不能用同一个磁盘,会报错,报错信息中就提示加这个配置或者更换排序磁盘。 我这个分区没有太大空间(一般要200GB以上),所以就限制了下。
导入速度确实慢,总数据大小在400多GB,有一个单表大小200多GB,第一次备份数据和tidb都在同一台服务器,也都在同一块磁盘上,速度慢,一直导入不成功。后来把备份数据和tidb-lightning部署到其他机器,导入也很慢,导入不成功

为什么要重启tidb?tidb过程中状态都是正常的。
这个timeout 不知道哪里可以修改参数,单表200多GB, 等转换完成后导入的时候估计是客户端超时了。

你导出的文件是什么格式? sql还是CSV 呀?

用dumpling 从mysql8导出的,sql格式的,其他表(小于10G)都导入成功了,就这个表(200G)导入失败

200G, 是不是表太大了, 你把导出的sql 文件切分一下,试试呢?

我尝试了, 切分成了5份,第一份30G导入成功了,第二份20G 采用增量导入,失败了,错误类似上边的,试了好几次。不知道是不是支持增量导入。
我看社区有并行导入的,好像是按行数划分的,但是我没这么干

你这说增量 是前面导入了30GB , 后面再导入20GB 就报错啦?

后端模式选的那种?

是的,导入模式都是 local . 我一会再导入下,截个图
其中增量导入的配置增加了如下这行
[tikv-importer]
backend = “local” // 导入模式都是 local
sorted-kv-dir = “/sorted-kv-dir/02”
disk-quota = “200GB”
incremental-import = true //增量导入,要不然会报错,目标表不为空

image

上面的 timeout 看起来是 pd 报的呀,都看不出来 Lightning 内部有什么问题,也看不出来导入进行到哪个阶段了。或者您能提供一下完整的 log 吗?靠猜很难解决问题的。

第一次导入使用local, 后面增量导入是 应该需要选择 tidb-backend

增量导入是可以选择 local 的

1 个赞

还有个疑问,你导出的是sql文件(insert), 是不是可以直接执行sql 文件呢?

那目标原来的数据还在吗?

在的(不然怎么叫增量导入呢:joy:

对,应该是可以的,这个我到时没有想到,就用官方的lighting导入的, 数据量比较大。
源库大概 400多G,其中就这个表有200多G,看这日志是什么心跳断开了,但是我不知道怎么去调试。 论坛上也没搜到相关的问题
正在尝试第一次导入
image

哦哦 学习了