pd切换leader流程及注意事项

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】v5.4.0
【复现路径】打算做缩容,把老的服务器缩容掉,现在只剩下PD节点了,请问下切换掉PD的leader的时候流程怎么操作,需要注意什么?
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】

是自动切换的吧,保持3个实例,挨个切换就可以了

旧服务器有3个pd,新上了3个pd,先把旧的2个pd不是leader节点缩容,再切换最后一个PD,这样操作可以吗?

在业务低谷期直接缩掉3个就行了,会自动切换leader

直接缩容可能会导致业务有短时间的报错,建议先把旧的2个pd不是leader节点缩容,再切换最后一个PD,切换完成再把最后一个pd下线,这样业务不会受影响。

可以直接用命令切换

tiup ctl:v{版本} pd member

看一下每个member的名字。然后

tiup ctl:v{版本} pd member transfer {目标pd的name}

切到新的集群上,把老的缩容就行了。

如果要再讲究一点,可以给新的pd设置更高的优先级,你设置好优先级,基本上pd再出现选举也只会再新的pd上。除非新的pd全挂。

tiup ctl:v{版本} pd member leader_priority {pd name} {优先级数字}

没有设置优先级的应该是0,给新pd全部设置成1,这样再选举也只能再新pd中产生pd leader,而且优先级设置好,leader应该会自动换到新pd上。不用你自己再transfer一次。

留PD选举的leader节点,其他节点可以scale-in,然后scale-out新PD节点,将leader节点飘到新增节点上,再删最后一个老节点

直接扩容缩容就行,没啥问题的

已经是5+的版本了,直接干就行

或者可以强制把leader 从当前成员移走:

member leader resign

https://docs.pingcap.com/zh/tidb/stable/pd-control#member-delete--leader_priority--leader-show--resign--transfer-member_name

:thinking:我这边都是交给集群自动切换的,没有手动切换。缩容的时候会自动切换。

1 个赞

是自动切换的

是否手动切换,要看版本,我上边说过了,v5.x可以自动且,上个图了解一下

升级版本,就好了

可以 之前测试切换pd是先扩容 后缩容 ,没什么问题

留一个老节点,启新节点,把L节点切换到新节点后,停老节点,缩了,然后重启整个集群

z这个方法可以

  • 确保新的PD节点处于正常工作状态,具备足够的资源和性能来承担Leader角色。
  • 在进行Leader切换期间,可能会出现一小段时间的访问中断或性能下降,因此需要在合适的时间窗口进行操作,以最小化对业务的影响。
  • 在切换Leader之前,最好备份当前的PD节点数据,以防止意外情况发生。
  • 在进行PD Leader切换之前,建议先在测试环境或POC环境进行验证,确保操作的安全性和正确性。

我都没有关注这个,业务低峰期,直接缩容的,它自己切换,没有要求必须谁是leader,集群自己决定就行