centos7.6 tidbv6.6.0 使用reparo恢复binlog日志文件报错

【 TiDB 使用环境】centos7.6
【 TiDB 版本】v6.6.0
【复现路径】./reparo --config ./rst.toml
【遇到的问题:问题现象及影响】
rst.toml 文件内容

data-dir = “/share/mountpoint/s_tidb/tidb-test/CA5BF5BE51144B23BC9226BD38D6D1CB/”
log-level = “debug”
start-tso = 0
stop-tso = 0
dest-type = “mysql”
txn-batch = 20
worker-count = 16
safe-mode = true
[dest-db]
host = “10.10.217.3”
port = 4000
user = “root”
password = “123456”

使用 binlog文件恢复
恢复失败,报错[“close reparo failed”] [error=“Error 1062: Duplicate entry ‘6’ for key ‘info.PRIMARY’”]

表中没有主键,表只有一个字段,想破头也想不出为什么会报这个错,关键这个还非必现,就很难。
【资源配置】
【附件:截图/日志/监控】

表结构可以分享么?

F4FF99EB-7B58-4d01-8619-7EF92F434471

5.3.4的老版本tidb没有这个问题
表中如果有主键也不会有问题
没有主键的表,在6以上的版本中会出现

binlog 在5.X 的兼容性就不太好了,6.X 就更别提了,建议用 ticdc 做替换

如果是 SQL 类的脚本,就需要查阅相关的结构了

我多次尝试又总结了一下这个问题:binlog恢复没有主键的表会报错,我代码里增加了失败重试算是解决了,但是恢复出来的数据是乱的,后来我又把恢复配置“同步下游的并发数”改成1才算是数据正确了。

没有主键的话,会默认生成一个 隐藏的主键…

在官方文档里有描述

算了,我还是不用binlog了,谢谢啦

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。