drainer同步失败

【 TiDB 使用环境 】生产环境
【 TiDB 版本】
原版本V3.0.0
新环境V5.4.0

【遇到的问题】
数据库版本的升级,从V3.0.0升级到V5.4.0
没有采取直接在线升级的方式,而是采用数据的导入导出方式配合drainer进去数据的同步

【复现路径】
1、利用dumpling备份V3.0.0版本里的数据
2、利用tidb-lightning将备份出来的数据导入至V5.4.0的新环境中
3、利用tiup cluster scale-out命令部署drainer,其配置文件如下:


4、利用上述命令部署drainer其指向的PD的地址为新环境V5.4.0的地址,因此人为修改drainer-8249/scripts/run_drainer.sh脚本,将PD的地址指向老环境V3.0.0的地址,修改结果如下:

5、利用tiup cluster start {cluster-name} -N 10.16.52.211:8249命令启动drainer节点,日志报错如附件

【问题现象及影响】
drainer节点启动报错,数据无法从V3.0.0同步至V5.4.0

【附件】


drainer.log (345.1 KB)

1 个赞

请确定原环境是否已经开启binlog

日志是开启了的,因为这个库的数据还是利用drainer同步到mysql中了

这一步是在做什么?
如果是通过部署两套集群来实现集群的升级。在旧集群中开启 binlog ,扩容 drainer,drainer 下游接新集群就好了。

本意是想通过新环境中的tiup来部署drainer,不想通过3.0版本中的ansible方式部署,因为这种方式会检查配置中跟本次安装IP不相干的机器,然后因为其他机器检查不通过而导致的失败(比如我的节点部分用的是虚机,磁盘检测不通过,虚机swap检测等),但是通过tiup来部署drainer,默认生成的drainer启动脚本中pd指向的是新集群环境的PD地址,而不是老的环境的3.0的PD地址,因此这一步就是人为修改指向的PD地址,让其指向3.0环境的PD,同时同步也会修改commit-ts

这个步骤不是正确的操作啊。A 集群数据同步到 B 集群,binlog 是要在 A 集群开启部署的。建议还是按照正常的操作流程搞吧。TiUP 直接在新集群上部署 drainer,不确定是否有其他新集群相关信息也在 drainer 中记录。

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。