lightning增量数据导入报错

需要想目标库增量导入数据,使用lightning时出现错误,处理后重新开启,提示需要先将几张表的checkpoint处理掉。如果根据提示用 --checkpint-error-destroy 的话会把这几张表直接删掉,那么我原来的数据也就跟着被丢失。这种情况我需要怎么处理?

丢失的再导入一次不就可以了吗

不要用 destroy ,用 ignore 也可以。官网有说明的:https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-checkpoints#--checkpoint-error-ignore

原来表存在数据10条,本次lightning导入的是额外5条数据,用destroy会直接drop 表,把原来的10条数据也删掉。如果你指的是在断点处重新备份该表数据后再导入,有点原始…,就是不想太原始才来问问有没有更合理的方法。照理有断点续传应该会考虑到这种情况

看到了,请教下直接用ignore会不会有丢失数据的风险?

多数情况下没有风险,最后有 checksum 的,能过久没问题。

sorry,我看叉了,以为表里是空的
你可以按照楼上说的用ignore试试

数据库没问题,直接忽略,接着导入

可以使用 --ignore 选项

嗯, ignore可行

不用-destroy就可以了

正常来说lightning会自动断点续传的,你这是出错后,改了lightning任务的配置文件了?

没改呀,断点续传是非正常状态的中断才开启吧?因导入比如唯一键冲突,表结构不一致导致的错误,即使处理掉错误,也需要清除或者忽略掉错误点才能继续导入任务吧?


额,确实跟你说的一样,只有OOM、主动KILL这种非数据错误的中断,才会启用断点续传,数据出错导致的错误,得手动处理才行。

1 个赞

其实看情况是在 load 阶段还是 import 阶段。

建议删掉重新来,有原始数据怕什么,如果接着上次的导入还要考虑是否有数据丢失问题