写点什么

使用 pd-recover 恢复 pd 多数节点故障的场景

  • 2022 年 7 月 11 日
  • 本文字数:905 字

    阅读完需:约 3 分钟

作者: 信仰在空中飘扬原文来源:https://tidb.net/blog/b6835782


1. 实验环境:


  • A 机房: 2 个 pd , B 机房: 1 个 pd

  • 将三个 pd 节点其中两个 kill 掉 (模拟 A 机房挂掉),然后删除数据目录, 使用剩下的一个 pd-server 通过 pd-recover 来恢复服务


2. 实验流程:


故障后的状态如下图



a. 使用 tiup 下载 pd-recover 软件


(这部分具体可参考官方文档https://docs.pingcap.com/zh/tidb/stable/pd-recover)$ tiup install pd-recover
复制代码


b. 获取 cluster-id & idAllocator


$ cd /data/tidb/deploy/pd-2391/log[tidb@db-redis-149-156 log]$ cat pd.log   |grep "init cluster"[2021/06/16 21:17:28.592 +08:00] [INFO] [server.go:352] ["init cluster id"] [cluster-id=6940974019094123759]
复制代码


– 去每个 pd 日志目录下获取 idallocator


cat {{/path/to}}/pd*.log | grep "idAllocator allocates a new id" |  awk -F'=' '{print $2}' | awk -F']' '{print $1}' | sort -r | head -n 1
复制代码


c. 停止旧的 pd 集群的数据目录 (包括还存活的那个 pd 节点)


$ cd /data/tidb/data && rm -rf  pd-2391
复制代码


e. 创建新的集群


  • 模拟的情况是 A 机房挂了, 此处假设在 B 机房有相同的 tiup 备份数据

  • 重新启动 pd 节点: tiup cluster start tidb-louis_cluster -N 192.168.149.156:2391


f. 使用 pd-recover


[tidb@db-redis-149-156 ~]$ tiup pd-recover -endpoints http://192.168.149.156:2391 -cluster-id 6940974019094123759 -alloc-id 27000Starting component `pd-recover`: /home/tidb/.tiup/components/pd-recover/v5.0.2/pd-recover -endpoints http://192.168.149.156:2391 -cluster-id 6940974019094123759 -alloc-id 27000recover success! please restart the PD cluster
复制代码


g. 强制删除故障的两个节点


 tiup cluster scale-in  tidb-louis_cluster  -N 172.29.238.197:2391  --force
复制代码


k. 重启整个集群


tiup cluster  restart  tidb-louis_cluster 
复制代码


此时集群使用一个 pd 节点提供服务



此处只是模拟两个 pd 节点故障的恢复场景,最终目的是 在 A 机房挂掉后,使用 pd-recover 恢复 pd 服务,


使用 tikv-clt 强制恢复剩下的一个 tikv 节点对外提供服务,后续整体的测试流程完善后再上传。


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

TiDB 社区官网:https://tidb.net/ 2021.12.15 加入

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

评论

发布
暂无评论
使用pd-recover 恢复pd 多数节点故障的场景_管理与运维_TiDB 社区干货传送门_InfoQ写作社区