模拟PD Server机器宕机紧急恢复

搭建一套tidb集群,模拟3个pd server节点宕机2个后紧急恢复

第 1 步:停止所有节点

第 2 步:启动存活的 PD 节点
./pd-server --force-new-cluster --name=pd-109.52.127.135-2379 --client-urls=http://0.0.0.0:2379 --advertise-client-urls=http://127.0.0.1:2379 --peer-urls=http://0.0.0.0:2380 --advertise-peer-urls=http://127.0.0.1:2380 --config=/data1/tidb-deploy/pd-2379/conf/pd.toml

第 3 步:使用 pd-recover 修复元数据【执行./pd-recover命令失败】
[tidb@dw-prd-jgs-tidb_dba-001 tidb-community-toolkit-v7.1.5-linux-amd64]$ ./pd-recover --from-old-member --endpoints=http://109.52.127.135:2379
failed to recover: the cluster is already bootstrapped

https://docs.pingcap.com/zh/tidb/dev/pd-recover/#pd-recover-使用文档

1 个赞

整个集群暂停操作做了么?
tiup cluster stop cluster-name

1 个赞

执行了

1 个赞

直接kill pd进程试试呢

报错上来看,看起来是 recover 的时候认为这个 pd 已经被初始化了。

我确认下,你这个 pd 是目录没有问题,只是多数派挂掉导致无法提供服务的情况么?

我测试的也是相同的问题,只能按照“完全重建 PD 集群”的方式恢复。
不过完全重建和从存活的节点创建好像也没差别吧。毕竟数据都是在TiKV中。

对的,总计3个pd server,模拟2个pd server的ECS关机后如何快速修复。

这种情况是不是只能停止集群所有节点,重新启动