写点什么

TiDB 工具 | PD 全部扩缩容替换注意事项

  • 2025-01-17
    北京
  • 本文字数:1148 字

    阅读完需:约 4 分钟

作者: Dora 原文来源:https://tidb.net/blog/d01d2bd9

背景

PD 通过扩缩容的方式全部替换


举例原先三台PD(a,b,c)经过扩缩容替换为(d,e,f)
复制代码

PD 缩容步骤

检查所有依赖 PD IP 地址和端口的脚本

比如:BR,dashboard 访问域名后的 PD ip 和端口,Tiflash 中依赖的 PD ip 和端口,以及其他任何可能写死的旧的 PD 的 ip 和端口。

停止 scatter

如果集群开启了表级别的 scatter,建议先停止


pd leader 切换时会对 scatter 运行有影响,也为了降低 scatter 对扩容的影响,操作之前先把 scatter 停止,pd,tikv 扩缩容操作完成后再开启


关闭表打散命令curl http://{TiDBIP}:10080/tables/{db}/{table}/stop-scatter开启表打散命令curl http://{TiDBIP}:10080/tables/{db}/{table}/scatter
复制代码

扩容 PD 节点

  1. 编辑 pd 扩容的配置文件

  2. 检查集群存在的潜在风险:

  3. 自动修复集群存在的潜在风险:

  4. 执行 scale-out 命令扩容 TiDB 集群:

  5. 扩容结束后,检查集群状态

PD transfer leader

  1. 查看当前 PD leader 节点在哪个 pd 上

  2. 将 PD leader 从当前成员迁走,迁到指定的 pd 节点上

  3. 查看 pd 节点的 leader 节点是否已经到新的节点上

  4. 刷新集群配置

缩容 PD 节点

  1. 查看集群状态,列出旧的 3 台 PD 节点 ip 和端口

  2. 执行缩容操作

  3. 查看集群状态,查看旧的 pd 节点是否缩容成功

  4. 刷新集群配置

注意事项

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,再视具体情况分别重启


# 直接执行Reload执行Reload操作会tikv 会先transfer leader,在tikv较多的情况下会比较慢tiup cluster reload <cluster-name>
# 先跳过重启刷新配置# 然后再单独重启组件tiup cluster reload <cluster-name> --skip-restarttiup cluster stop/start/restart <cluster-name> -R role
复制代码


发布于: 刚刚阅读数: 3
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiDB 工具 | PD全部扩缩容替换注意事项_实践案例_TiDB 社区干货传送门_InfoQ写作社区