tidb-binlog initial-commit-ts 配置未生效

drainer 中的配置 image
drainer 机子的启动脚本 image
貌似启动脚本中的ts把配置中的ts覆盖了
并且查看同步中的checkpoint 目前的值均比配置中ts小

1 个赞

命令行参数的优先级比配置文件的高,如果想按照配置文件中的 ts 进行同步,就不要在命令行中显式设置了。

我没有设置命令行,我是用tiup进行扩容drainer自动生成的启动脚本,而且只要我用tiup进行启动,这个命令行都会被覆盖成新的。

目前的tidb版本是4.0.12

使用 tiup 部署的话,可以在配置文件中设置下 commit_ts ,参考下面这个配置文件:
https://github.com/pingcap/docs-cn/blob/release-4.0/config-templates/complex-tidb-binlog.yaml

image

我设置了参数,不然config里也不会有这个ts,现在是这个配置的ts不会生效,只要用tiup启动都会被覆盖成0

麻烦将配置文件中的 init-commit-ts 替换成 commit_ts 再试下

我根据上面的配置url加在drainer server块不允许添加image
报如下错误

放在config块依旧没有用
drainer所在服务器的脚本依旧为0但是配置文件却有该配置
image

你这边目前还没有开始同步数据吧,如果没有的话建议将旧 drianer 节点卸载掉重新部署下,参考上面使用 tiup 部署时的拓扑文件。

同步过了,我是直接修改的脚本中的值。不过我有时间的时候用你的方式测试一下,不过我觉得这应该是个bug吧

如果使用 tiup 部署,调整参数都统一用 tiup cluster edit-config 方式,否则直接修改进程的配置文件,reload 之后会被覆盖掉,你可以后面再测试下。

我用的就是这种方式,只是我发现他跑的binlog内容不对我才去具体事例上看的,发现的如上问题

目前 gc 设置的时间是多长?如果太短的话,全量同步完成后 commit_ts 超过了 gc save point 点了,这样即使设置了 commit_ts ,drainer 也无法从那个 ts 点继续同步了

修改目标库,tidb_binlog库的checkpoint表,commit_ts修改成指定的tso即可

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