drainer节点与pump节点无法下线

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:V3.0.3
  • 【问题描述】:已开启binlog的tidb集群无法下线drainer节点与pump节点

1:未关闭集群的binlog配置时,尝试下线drainer节点与pump节点,结果tidb节点被打挂(第一次尝试下线)

2:参照文档 https://asktug.com/t/topic/33170 ,在关闭集群的binlog配置后,使用下面的操作命令,尝试下线drainer节点与pump节点,却不能下线drainer与pump,drainer与pump与进程都还依然存在。

resources/bin/binlogctl -pd-urls=http://192.168.17.149:2679 -cmd offline-drainer -node-id mt-17-158:8449
resources/bin/binlogctl -pd-urls=http://192.168.17.149:2679 -cmd offline-drainer -node-id mt-72:8449

resources/bin/binlogctl -pd-urls=http://192.168.17.149:2679 -cmd offline-pump -node-id mt-17-158:8551
resources/bin/binlogctl -pd-urls=http://192.168.17.149:2679 -cmd offline-pump -node-id mt-72:8551

ansible-playbook stop_drainer.yml

ansible-playbook stop.yml --tags=pump

ansible-playbook stop.yml --tags=drainer

请问:该如何正确与完整的对drainer节点与pump节点进行下线呢? 在关闭集群的binlog配置后,如果直接kill对应的drainer节点与pump节点的进程,是否还会造成tidb节点挂掉呢? 谢谢

你好,

请将 binlogctl 的 offline-pumpoffline-drainer 命令,执行结果返回下~

文档中有下线 pump/drainer 的操作步骤 ,看下是否可成功下线。

目前集群的log_bin值为0 ,这个时候再执行 binlogctl 的 offline-pumpoffline-drainer 命令 ,是否会引起tidb节点挂掉呢 ? 谢谢

你好,

下线 tidb-binlog 组件不会对 tidb-server 有影响,这边也测试了一下

[tidb@node5169 qihang.li]$ ./tidb-v4.0.0-rc-linux-amd64/bin/binlogctl --pd-urls=http://172.16.5.169:22379 -cmd drainers
[2020/05/19 15:57:37.586 +08:00] [INFO] [nodes.go:53] ["query node"] [type=drainer] [node="{NodeID: 172.16.5.169:18249, Addr: 172.16.5.169:18249, State: online, MaxCommitTS: 416776206530904065, UpdateTime: 2020-05-19 15:57:36 +0800 CST}"]
[tidb@node5169 qihang.li]$ ./tidb-v4.0.0-rc-linux-amd64/bin/binlogctl --pd-urls=http://172.16.5.169:22379 -cmd offline-drainer -node-id 172.16.5.169:18249
[2020/05/19 15:58:07.953 +08:00] [INFO] [nodes.go:123] ["Apply action on node success"] [action=close] [NodeID=172.16.5.169:18249]
[tidb@node5169 qihang.li]$ ./tidb-v4.0.0-rc-linux-amd64/bin/binlogctl --pd-urls=http://172.16.5.169:22379 -cmd drainers
[tidb@node5169 qihang.li]$ ./tidb-v4.0.0-rc-linux-amd64/bin/binlogctl --pd-urls=http://172.16.5.169:22379 -cmd drainers

[tidb@node5169 qihang.li]$ tiup cluster display qh
Starting component `cluster`: /home/tidb/.tiup/components/cluster/v0.6.2/cluster display qh
TiDB Cluster: qh
TiDB Version: v4.0.0-rc.2
ID                  Role        Host          Ports                                OS/Arch       Status     Data Dir                                    Deploy Dir
--                  ----        ----          -----                                -------       ------     --------                                    ----------
172.16.5.169:18249  drainer     172.16.5.169  18249                                linux/x86_64  Down       /home/tidb/lqh-demo/data02/drainer-18249    /home/tidb/lqh-demo/deploy02/drainer-18249
172.16.5.169:3000   grafana     172.16.5.169  3000                                 linux/x86_64  Up         -                                           /home/tidb/lqh-demo/deploy02/grafana-3000
172.16.5.169:13379  pd          172.16.5.169  13379/13380                          linux/x86_64  Healthy    /home/tidb/lqh-demo/data02/pd-13379         /home/tidb/lqh-demo/deploy02/pd-13379
172.16.5.169:14379  pd          172.16.5.169  14379/14380                          linux/x86_64  N/A        /home/tidb/lqh-demo/data02/pd-14379         /home/tidb/lqh-demo/deploy02/pd-14379
172.16.5.169:22379  pd          172.16.5.169  22379/22380                          linux/x86_64  Healthy|L  /home/tidb/lqh-demo/data02/pd-22379         /home/tidb/lqh-demo/deploy02/pd-22379
172.16.5.169:9090   prometheus  172.16.5.169  9090                                 linux/x86_64  Up         /home/tidb/lqh-demo/data02/prometheus-9090  /home/tidb/lqh-demo/deploy02/prometheus-9090
172.16.5.169:18250  pump        172.16.5.169  18250                                linux/x86_64  Up         /home/tidb/lqh-demo/data02/pump-18250       /home/tidb/lqh-demo/deploy02/pump-18250
172.16.5.169:24000  tidb        172.16.5.169  24000/24080                          linux/x86_64  Up         -                                           /home/tidb/lqh-demo/deploy02/tidb-24000
172.16.5.169:24001  tidb        172.16.5.169  24001/24081                          linux/x86_64  Up         -                                           /home/tidb/lqh-demo/deploy02/tidb-24001
172.16.5.169:19000  tiflash     172.16.5.169  19000/18123/13930/10170/10292/38234  linux/x86_64  Down       /home/tidb/lqh-demo/data02/tiflash-19000    /home/tidb/lqh-demo/deploy02/tiflash-19000
172.16.5.169:40161  tikv        172.16.5.169  40161/40181                          linux/x86_64  Up         /home/tidb/lqh-demo/data02/tikv-40161       /home/tidb/lqh-demo/deploy02/tikv-40161
172.16.5.169:40162  tikv        172.16.5.169  40162/40182                          linux/x86_64  Up         /home/tidb/lqh-demo/data02/tikv-40162       /home/tidb/lqh-demo/deploy02/tikv-40162
172.16.5.171:40163  tikv        172.16.5.171  40163/40183                          linux/x86_64  Up         /home/tidb/lqh-demo/data02/tikv-40163       /home/tidb/lqh-demo/deploy02/tikv-40163
[tidb@node5169 qihang.li]$ 

好的多谢,我这边是生产环境

我试一下看看

:ok_hand:,有问题及时反馈。

大佬 反馈结果如图 ,帮分析下原因,谢谢

你好,

另外上传下 drainer、pd 和 pump 的 log 看下。

  1. 确认下当前 binlog 是否已经关闭,如果没有关闭先将其设置为 false ,并滚动 tidb,是参数生效。
  2. 使用 update-pumpupdate-drainer 将 pd 中 pump 和 drainer 的状态设置为 paused
  3. 尝试重新启动 drainer 和 pump。
  4. 然后使用 offline-pumpoffline-drainer 下线该 Pump 和 Drainer。

当前 binlog 是关闭状态,如下图,是通过滚动tidb后生效的

drainer 和 pump 的 最新log, 帖子提问里有的,请见上文

offline-pumpoffline-drainer 下线该 Pump 和 Drainer ,只是将drainer和pump的同步任务取消了吧,对应的drainer和pump进程也能一起停掉吗 ?

应该不会,可以执行 offline 的时候观察下,只是将状态设置为 offline。

目前 pump drainer 是否已经下线成功?