pump缩容报错 cannot find node id in topology

【 TiDB 使用环境】v4.0.11

集群是由3.0升级到4.0的。

缩容命令:
tiup cluster scale-in qcc-tidb-cluster -N tidb-004.ld-hadoop.com:8250

报错:
Error: failed to scale in: cannot find node id ‘tidb-004.ld-hadoop.com:8250’ in topology

这个要怎么处理。

1 个赞

tiup display 我看一下?(可以看看 meta 文件里,记录的是啥 .tiup/storage/cluster/clusters/wxytest/meta.yaml)

这个就是3.0时配置的pump
pump_servers:

  • host: 172.16.72.18
    ssh_port: 22
    imported: true
    port: 8250
    deploy_dir: /data/tidb_data
    data_dir: /data/tidb_data/data.pump
    log_dir: /data/tidb_data/log
    arch: amd64
    os: linux
  • host: 172.16.72.19
    ssh_port: 22
    imported: true
    port: 8250
    deploy_dir: /data/tidb_data
    data_dir: /data/tidb_data/data.pump
    log_dir: /data/tidb_data/log
    arch: amd64
    os: linux

配置文件是IP,show pump 显示的是域名,不一样。。

这个好像只能用 binlog ctl 删除,我找一下操作步骤(忘记了)

binlogctl 只有offline,下线后组件仍然是down状态。 这个不知道要怎么处理。

1、使用 show pump 命令,知道要下线的 id
2、使用
./binlogctl -pd-urls=http://ip:port -cmd offline-pump -node-id ip-xxxxx

./binlogctl -pd-urls=http://ip:port -cmd update-pump -node-id ip-xxxxx -state offline

状态变成down了。这里后续要怎么处理

正常下线就好,-N (id 写 display 展示的第一列内容)

down状态的不能使用缩容的。

先不要执行(或说你这个 pump 是什么时候部署的)

:joy: 强制卸载会不会有隐患,其他公司有没有这样的案例啊。

还没执行。只是在测试环境运行了

我潜意识以为,你是 ansible 导入的

最开始这套生产集群是ansible部署的,有pump组件。

然后通过tiup升级到4.0了。

1、你的问题是:不同版本 node 默认生产的 id 规则不一样,导致后续删除不掉
2、现在怎么缩容,没有其他用户案例(不过我关心的是:pump 关闭,需要关闭binlog 吧,你都关闭了的话,其实没事:你都没写 binlog 了)(2、你现在是在什么操作?是缩容一个 pump 还是要把所有的 pump 下线?)
3、另外,你标题缩容的是 id 是 域名 的吧,现在怎么缩容 正常的了(ip​:heavy_plus_sign:端口)

pump还使用的,由于老的pump节点上磁盘快写满了,我这边添加2个新的pump在其他节点。

所以需要把老的pump组件下线。避免把磁盘写爆了。这个节点上面还有其他服务。

生产无论使用ip还是域名缩容都不正常。

:joy: 哪你offline 的是 正常的吧
1、老得 pump 组件还在用?就算在用 tiup 显示的不是旧的,而是新的 pump,所以我理解你应该要 下线 旧的(即,你需要 offline 旧的吧:下线方法就是 binlog ctl 上面给的方式)

生产无论使用ip还是域名缩容都不正常,没明白:上面的操作是测试环境?

这个是下线pump
./binlogctl -pd-urls=http://ip:port -cmd offline-pump -node-id ip-xxxxx

这个命令执行了没有什么效果
./binlogctl -pd-urls=http://ip:port -cmd update-pump -node-id ip-xxxxx -state offline

这个是测试环境,这个我使用上面的命令执行了。仍然是down状态。 这个组件能缩容不。 重启集群后恢复为up状态。

生产环境需要下线并缩容2个老pump节点。

1、我这边,没有其他用户类似经验,所以建议你测试环境测试一下
2、正常的 pump ,就走正常下线流程,只有 id 显示域名之类的,下线要用上面提到的 binlogctl 的方式
(你现在的疑问,我没太理解)

先不纠结缩容的事了,这边先把磁盘的问题解决。

我这边先把老pump offline了。数据没有涨了。但是日志一直报WARN:

已有的drainer都已经消费到最新的数据了。

[2021/07/21 19:59:25.158 +08:00] [WARN] [server.go:868] [“Waiting for drainer to consume binlog”] [“Minimum Drainer MaxCommitTS”=11111] [“Need to reach maxCommitTS”=426473871861350634]