tidb 7.5 lightning增量导入报错

【 TiDB 使用环境】生产环境
【 TiDB 版本】V7.5.0
【复现路径】dump全量导出后,再做增量导出,用lightning全量导入后,再做增量导入报错
【遇到的问题:问题现象及影响】
[root@tidb_history_tikv1 tidb-community-server-v7.5.0-linux-amd64]# tail -f lightning.log
[2024/02/04 15:22:00.019 +08:00] [WARN] [config.go:1563] [“currently only per-task configuration can be applied, global configuration changes can only be made on startup”] [“global config changes”=“[lightning.level,lightning.file]”]
[2024/02/04 15:22:00.019 +08:00] [ERROR] [main.go:103] [“tidb lightning encountered error stack info”] [error=“[Lightning:Config:ErrInvalidConfig]conflict.strategy cannot be used with tikv-importer.parallel-import”] [errorVerbose=“[Lightning:Config:ErrInvalidConfig]conflict.strategy cannot be used with tikv-importer.parallel-import\ngithub.com/pingcap/errors.AddStack\n\t/go/pkg/mod/github.com/pingcap/errors@v0.11.5-0.20221009092201-b66cddb77c32/errors.go:174\ngithub.com/pingcap/errors.(*Error).GenWithStack\n\t/go/pkg/mod/github.com/pingcap/errors@v0.11.5-0.20221009092201-b66cddb77c32/normalize.go:155\ngithub.com/pingcap/tidb/br/pkg/lightning/config.(*Conflict).adjust\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/br/br/pkg/lightning/config/config.go:1341\ngithub.com/pingcap/tidb/br/pkg/lightning/config.(*Config).Adjust\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/br/br/pkg/lightning/config/config.go:1594\ngithub.com/pingcap/tidb/br/pkg/lightning.(*Lightning).RunOnceWithOptions\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/br/br/pkg/lightning/lightning.go:350\nmain.main.func2\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/br/br/cmd/tidb-lightning/main.go:94\nmain.main\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/br/br/cmd/tidb-lightning/main.go:95\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:267\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1650”]

【资源配置】
[root@tidb_history_tikv1 tidb-community-server-v7.5.0-linux-amd64]# cat lightning.toml
[lightning]
level = “info”
file = “lightning.log”
table-concurrency = 8
io-concurrency = 6

[tikv-importer]
backend = “tidb”
sorted-kv-dir = “/data/lightning_data” # 指定ssd目录
incremental-import = true

[mydumper]
data-source-dir = “/data/account_db2”
filter = [‘.’,‘!mysql.‘,’!sys.’,‘!INFORMATION_SCHEMA.‘,’!PERFORMANCE_SCHEMA.’,‘!METRICS_SCHEMA.‘,’!INSPECTION_SCHEMA.’]

[checkpoint]
enable = true

[tidb]
host = “10.230.8.29”
port = 4000
user = “root”
password = “XXXXXX”
status-port = 10080
pd-addr = “10.230.6.137:2379”

lightning没有增量导入

1 个赞

5.3的时候有这个参数,到7.5没有了,没有就做不了增量了。

这玩意本来就不是增量导入啊,增量导入的意思不就是目标表有数据吗?这样用tidb模式导入直接就是增加了啊🤔

看我的截图,那里面已经写的很清楚了,只是参数名像增量,其实那个参数是控制并发的

是的,增量导入是目标表就存在数据,后端用tidb模式,下游 tidb可正常提供服务而已。

incremental-import 这个参数怎么配的,能否给下相关链接?

7.5版本没这个参数了,不用配置了,改成parallel-import了
https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-configuration#tidb-lightning-任务配置

1 个赞

仔细看大佬给你回的图片

lightning有增量导入了?我还以为我要学习到新知识了呢。。。。
你这个报错conflict.strategy cannot be used with tikv-importer.parallel-import,看意思是conflict.strategy参数不能搭配parallel-import=true来导入了,而你设置的incremental-import = true参数就相当于设置了parallel-import=true,所以建议你删除对应的参数后重新导入再试一下。

parallel-import=false 就可以增量导入,但是创建数据库和表的SQL要删除才可以。

嗯,删除也一样,默认就是false

这个报错信息看着还是很明确的, 我没理解错的话应该是 tikv-importer 和 parallel-import 不能一起用吧。

conflict.strategy = 策略冲突

看来参数是不支持

改用tidb模式可以导入,local不行

lightning 还真没用增量导入,br到是经常用,啥时候有增量?

从5.3开始,就有增量哈。

:flushed:为什么觉得5.3开始就有增量?没看到文档有描述呀~

我们把事情理一理吧。

首先你没说清楚你导入的原始格式是什么。因为你配置了

[tikv-importer]
backend = “tidb”

使用了逻辑导入,所以你的原始格式不是csv就是sql这类文件,不会是sst这类物理导出后的文件格式。

然后在逻辑导入的情况下,其实就是把这些文件转成insert语句执行一下。对原始库表中是否有数据并没有要求。所以全量或者增量导入都是可以的。

然后,说第二件事。

incremental-import

这个参数,确实像 @db_user 大佬截取的文档那样,从来也不是一个增量导入的参数,而且后续版本也改了名字。他后面的名字parallel-import更贴切,意思是并行导入。也就是上面截图上说的,是有多个lightning实例再导入同一张表,是为了快速导入数据到数据库所采取的一种导入方法。如果你只有一个lightning实例,并不是上述这种快速导入以初始化数据库的场景,这个参数可以直接注释掉或设置为false。

回到原问题,你一开始的执行报错确实是因为你设置了

incremental-import = true

我看你后续回复应该是已经解决了这个问题。

2 个赞