【 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 个赞
日志是开启了的,因为这个库的数据还是利用drainer同步到mysql中了
小王同学Plus
(小王同学 Plus)
4
这一步是在做什么?
如果是通过部署两套集群来实现集群的升级。在旧集群中开启 binlog ,扩容 drainer,drainer 下游接新集群就好了。
本意是想通过新环境中的tiup来部署drainer,不想通过3.0版本中的ansible方式部署,因为这种方式会检查配置中跟本次安装IP不相干的机器,然后因为其他机器检查不通过而导致的失败(比如我的节点部分用的是虚机,磁盘检测不通过,虚机swap检测等),但是通过tiup来部署drainer,默认生成的drainer启动脚本中pd指向的是新集群环境的PD地址,而不是老的环境的3.0的PD地址,因此这一步就是人为修改指向的PD地址,让其指向3.0环境的PD,同时同步也会修改commit-ts
小王同学Plus
(小王同学 Plus)
6
这个步骤不是正确的操作啊。A 集群数据同步到 B 集群,binlog 是要在 A 集群开启部署的。建议还是按照正常的操作流程搞吧。TiUP 直接在新集群上部署 drainer,不确定是否有其他新集群相关信息也在 drainer 中记录。
system
(system)
关闭
7
该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。