TiDB3.0混合部署情况下,如何只下线机器上的某个节点

背景:实例192.168.0.1上混合部署了 TIKV、TIDB
需求:需要下线实例192.168.0.1上面的TIDB节点
问题:根据官方文档(https://docs-archive.pingcap.com/zh/tidb/v3.0/scale-tidb-using-ansible)注意事项中“以下缩容示例中,被移除的节点没有混合部署其他服务;如果混合部署了其他服务,不能按如下操作。”

是否还有其他方式可以实现这个需求。(PS:TIDB 版本暂不考虑升级)
或者可以手动登录 192.168.0.1 节点,然后 kill tidb_server_pid ?

加 -l 指定机器 -t 指定服务试试,不过最好还是测试环境先试试,3.0太老了,忘得差不多了

赶紧升级吧

升级新版本啊。

直接干掉这个tidb 进程就可以了

这个只是停止节点运行,不是从集群中移出节点。还是要按照官方文档操作。

  1. 如果要下线的是TiDB节点,可以使用TiUP来完成该操作。首先需要在inventory.ini配置文件中删除该节点的信息,然后使用以下命令启动TiDB集群:
    tiup cluster scale-in <cluster_name> -N <node_name>
    其中,<cluster_name>是集群名称,<node_name>是要下线的节点名称。
1 个赞

v3.0.6版本还没有tiup

升级版本

3.0版本还没有使用tiup ,用的是ansible 工具。

楼主要操作老集群,可以使用ansible 来管理集群节点,包括扩缩容、启停、升级等方面。

如果是只有少数的节点,那么可以手动执行命令完成。在楼主这个问题上,可以这样:
1.调整前端负载均衡,把要下线的tidb server节点upstream 去掉,移走业务流量。
2.使用ansible 缩容,或者手动systemctl stop再清理目录的方式下线。
3.检查集群情况,确认完成缩容。

tidb server是无状态的,所以操作还是比较简单的,只要没有前端流量了就问题不大。
如果是pd 或者tikv 有状态的节点,还需要重启集群,会复杂一些。

缩容处理,不过该版本太低了,不知道是否支持。杀掉进程应该也可以吧,你可以试试

升级版本吧,官方文档缩容节点最低是4.0版本,使用的tiup
https://docs.pingcap.com/zh/tidb/v4.0/tiup-cluster#缩容节点

差现在的最新版太多了,kill试试

3.0也支持缩容。

升级新版本

v3.0也支持的。

1 个赞

缩容 TiDB 节点

1.修改前端负载均衡迁移走流量
2.停止对应的实例节点名字

ansible-playbook stop.yml -l tidb-name1,tidb-name2

或者手动停止服务进程:

sudo systemctl stop tidb-4000.service

3.编辑 inventory.ini 文件,移除节点信息

4.更新 Prometheus 配置并重启

ansible-playbook rolling_update_monitor.yml --tags=prometheus

5.检查

赶紧升级吧

那就简单了,直接参考方案即可

使用 sudo systemctl stop tidb-4000.service 可行。
感谢🙏