TiDB 工具 | PD 全部扩缩容替换注意事项
作者: Dora 原文来源:https://tidb.net/blog/d01d2bd9
背景
PD 通过扩缩容的方式全部替换
PD 缩容步骤
检查所有依赖 PD IP 地址和端口的脚本
比如:BR,dashboard 访问域名后的 PD ip 和端口,Tiflash 中依赖的 PD ip 和端口,以及其他任何可能写死的旧的 PD 的 ip 和端口。
停止 scatter
如果集群开启了表级别的 scatter,建议先停止
pd leader 切换时会对 scatter 运行有影响,也为了降低 scatter 对扩容的影响,操作之前先把 scatter 停止,pd,tikv 扩缩容操作完成后再开启
扩容 PD 节点
编辑 pd 扩容的配置文件
检查集群存在的潜在风险:
自动修复集群存在的潜在风险:
执行 scale-out 命令扩容 TiDB 集群:
扩容结束后,检查集群状态
PD transfer leader
查看当前 PD leader 节点在哪个 pd 上
将 PD leader 从当前成员迁走,迁到指定的 pd 节点上
查看 pd 节点的 leader 节点是否已经到新的节点上
刷新集群配置
缩容 PD 节点
查看集群状态,列出旧的 3 台 PD 节点 ip 和端口
执行缩容操作
查看集群状态,查看旧的 pd 节点是否缩容成功
刷新集群配置
注意事项
PD 通过扩缩容全部替换后,部分组件可能由于未及时更新 PD Client 或者还是获取进程中的旧 PD 列表导致发生各种问题
可能的问题
dumpling, lightning, br snapshot, sync-diff 这些不应该在操作期间扩缩容,暂时忽略
Binlog :
某些版本 会导致 pump/drainer 出现问题,获取的还是旧的 PD 信息
issues:https://github.com/pingcap/tidb-binlog/issues/1236
该 issues 在 6.1.7,6.5.4,7.1.1 以及 7.3 以后已修复,在之前的 Binlog 版本中 PD 全部替换后会出现问题
TICDC:
某些版本会导致 TICDC 任务出现报错,获取的还是旧的 PD 信息
issues:https://github.com/pingcap/tiflow/issues/9584
该 issues 在 6.5.6,7.1.2 修复,但修复不全面,修复后对于新建的 cdc 任务会报错(获取进程中的 pd 列表),已存在的 cdc 任务不会报错
TIDB:
某些版本 Fast DDL 会有问题,获取的还是进程中的 PD 列表
相关 issues:https://github.com/pingcap/tidb/pull/48687,在 7.1.6 和 7.5.0 后修复
建议
建议可以的话在 PD 全部扩缩容后可以跟上集群 Relaod 的操作,避免问题发生
对于较大集群无法直接 Reload,可以先跳过重启 Reload,再视具体情况分别重启
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/bcb6098f572614286bd37620e】。文章转载请联系作者。
评论