【 TiDB 使用环境】测试
【 TiDB 版本】 4.0.4
【复现路径】
【遇到的问题:问题现象及影响】
使用tiup部署
drainer最近内存使用激增,看了论坛上的其他问答,发现除了升版本貌似没有其他解决办法,但是目前不考虑升版本。
drainer目前所在机器上有pump和kafka,经常会内存不足,现在想将drainer迁移至大内存的机器
但是在文档里只找到了 pd/tidb/tikv/tiflash/ticdc 的迁移方法
请问如何迁移drainer呢?
是不是先用tiup cluster scale-in --node 下线drainer
然后记录下当前ts
最后tiup cluster scale-out scale-out.yaml,在文件里用drainer_servers配置?
【资源配置】
【附件:截图/日志/监控】
xfworld
(魔幻之翼)
2
drainer 内存暴增是因为 DDL 太多了,除非重新部署,否则 DDL 会一直留存…
你尝试先扩容 drainer,通过配置的方式把新的资源先用起来,在进行旧的资源下线处理。
按照你的理解的方式处理也可以,就是会有一段时间无法获取到 binlog 了 ( ts 十分重要,需要记录好)
可以参考这篇文档来加深理解:
https://docs.pingcap.com/zh/tidb/v4.0/tidb-binlog-relay-log
我的下游是kafka,似乎不能开启relay log
您的意思是我先把drainer扩容到2个,然后缩容到1个,这样最为稳妥吗
xfworld
(魔幻之翼)
4
relay log 也是通过 ts 来获取起始位置的
对,你也可以按照你的思路处理,都可以的
但是文档里的drainer配置让我有点费解,这里既然标明已废弃,那我要如何指明ts值呢
xfworld
(魔幻之翼)
6
你看的文档不是4.X 的吧
5.X之后,这个组件就被 ticdc 替换了,也建议你升级版本…
谢谢,是我疏忽了,但是我们生产环境太复杂了,用的ansible部署的集群,然后是drainer-kafka-阿里dts
似乎要完全卸载binlog,才能从ansible转为tiup,然后再升级版本,风险还是挺大的
还想请教一个问题,如果用我的方法的话,新起的drainer会从头开始全量同步数据吗?我这边由于是测试环境,从最新的ts读取也无所谓,但是从头开始全量同步希望能避免
建议开启swap,设置为512G试试,512G跑满,大概需要24小时。