tiup scale-in drainer 失败 报错:Error: failed to destroy: found multiple drainers nodes with the same host

【TiDB 使用环境】生产环境
【TiDB 版本】v7.5.3
【操作系统】CentOS Linux release 7.4.1708 (Core)
【部署方式】云上部署(什么云)/机器部署(什么机器配置、什么硬盘)
【集群数据量】
【集群节点数】
【问题复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
计划使用ticdc代理pump、drainer收集binlog,其中在scale-in drainer组件时报错,报错内容如下:


日志见附件:
tiup-cluster-debug-2025-05-16-20-57-46.log (16.0 KB)

[tidb@al-2-142-tidb01 ~]$ binlogctl -pd-urls=http://172.17.100.144:2379 -cmd drainers


发现存在多个,实际上只用了一个,可能是部署的时候出现的,现在如何把drainer缩容或者删除掉?

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】

146上drainer进程:

现在感觉是pd里存储集群的元数据里记录着:同一个节点同一个端口多个drainer记录(可能之前drainer删除没有通过tiup,pd里的元数据一直没清除,导致后边tiup新部署drainer时,pd元数据有多个drainer信息)导致现在scale-in时,pd不知道是要清理哪一个drainer。

请教各位同事,该怎么处理,才能成功把drainer 从集群信息中缩容掉?

pd里的元数据有相同的记录,可以清除下。

你好,请教一下pd里的元数据怎么清理啊?

怎么清除?命令是什么?

https://docs.pingcap.com/zh/tidb/stable/pd-control/ 可以参考下这个文档

  1. 通过 pd-ctl 删除该节点 , tiup 有命令 tiup ctl 可以操作 , 删除 member 的命令是 member delete。

你好,pt-ctl没有对pump和drainer元数据的操作;tiup ctl member只能对pd组件操作,你的意思是把146上的pd组件删掉?如果只是删除一个pd节点,做不到把pd集群etcd中存储的drainer的元数据清理掉吧?

缩容的时候加个–force,强制缩容,成功。
tiup cluster scale-in xft-cluster -N 172.x.x.146:8249 --force

虽然强制缩容成功了,但是pd元数据中还是有pump和drainer的信息,这个不清掉有什么影响吗?或者如果需要清理掉,该怎么清理?

根据以往经验来讲,例如其他组件 pd 里面的meta 没有被清理掉是没有影响的,就是再进行同 IP,同 Port 扩容的时候会扩容报错

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