lightning导入数据完成后,查看有部分数据没有成功导入

【背景】:新搭建集群
【TiDB 版本】: v 5.0.1
【TiDB Operator 版本】:1.1.4
集群状态

新搭建的集群,通过lightning导入数据,共5亿,只导入3亿,
lightning日志:tidb-lightning.log (1.2 MB)
尝试操作:
1执行

tidb-lightning-ctl --checkpoint-error-destroy=all

2,tiflash replica 副本设置为0,
3,删除基础表数据,
4.重新导入
报错:
image
过段时间重新执行
image
仍有部分数据没有导入;

1 个赞

1、帮确认一个信息:select count(*) 这个语句应该走的 tiflash(这点帮看执行计划确认一下)
2、这个 select count() 语句的结果集,是固定不变的了吗(也帮确认一下)

测试了好几次,走tiflash的


之前导入3.1亿,这次导入了4.2亿
另外导入完之后统计信息是10000,也不准,手动更新的

感觉和一个 bug 比较相似,不过建议咱们提供一下,tiflash 的日志,我们好确认一下。不过先确认几个信息:
1、tikv 的数据是否有问题(应该没问题,不过需要确认一下)
2、tiflash 的日志需要给一下

bug问题大概如何修复?
tikv数据是否有问题应该如何验证?目前除了数据无法成功导入其它看起来正常
tiflash-0.log (4.4 MB)

另外,lightning无法完整导入数据的问题,帮分析下。

我先确认是否同一个问题,再在这里反馈吧(尽快)

:ok_hand:好的

导入数据时,同时开启了tiflash,set tiflash replica1;这样tiflash同步更快一些,若不开启tiflash,是否能成功导入数据呢?

1、能成功导入
2、上面 select count() 语句 ,查询 tikv 的结果是多少啊,上面没有提供(我需要确认 tiflash 的结果集和 tikv 的 不一样)


导入后的结果

收到:ok_hand:

如果 tikv 查询结果为 0,表明导入失败或者可能 schema 有主键索引但无索引数据,可以在 lightning 相关日志中查看是否完全导入成功。
导入过程中进行查询是未定义行为,如果 tidb 下推 cop 查询到 tiflash,就会读到中间数据。此处后续需要改进,令 tidb 不能在这种情况下向 tiflash 发起 cop 请求。
为了排除 tiflash 的影响,建议先删除 tiflash replica,等导入成功并确认无误后再建。

日志中查看导入成功,且正常退出。
本次测试是删除 tiflash replica,等导入成功并确认无误后再建。缺点:同步过程太慢,比导入时同步慢很多。

@zhenda lighting 的日志里面有如下一行:

[2021/06/07 12:05:50.795 +08:00] [INFO] [main.go:46] ["got signal to exit"] [signal=hangup]

即lightning 收到了用户手动终止的 sighub 信号,然后停止了当前的导入进度退出了,麻烦确认一下这个终止的原因是什么(正常比较可能是连接的 ssh 断开导致)。 在这种情况下,lightning 导入并没有完成,因此数据不完整是预期的行为。目前lightning 导入支持断点续传,直接使用原来的配置重启lightning 即可,然后待导入完成后可以在确认一下数据是否完整。lightning 自身有 checksum 校验,如果校验成功,一般可以确保数据是完整的。