PD服务无法启动

【 TiDB 使用环境】测试
【 TiDB 版本】7.5.0
【复现路径】模拟pd节点故障,将3台的pd的deploy目录删掉后,然后新部署pd集群后出现的问题
【遇到的问题:问题现象及影响】
pd的错误日志:
[2023/12/27 11:38:33.055 +08:00] [ERROR] [middleware.go:156] [“redirect but server is not leader”] [from=pd-10.0.7.64-2379] [server=pd-10.0.7.64-2379] [error=“[PD:apiutil:ErrRedirect]redirect failed”]
[2023/12/27 11:38:33.056 +08:00] [ERROR] [middleware.go:156] [“redirect but server is not leader”] [from=pd-10.0.7.64-2379] [server=pd-10.0.7.64-2379] [error=“[PD:apiutil:ErrRedirect]redirect failed”]

另外一台pd的错误日志:
[2023/12/27 11:39:00.728 +08:00] [ERROR] [client.go:150] [“region sync with leader meet error”] [error=“[PD:grpc:ErrGRPCRecv]rpc error: code = Unavailable desc = server not started: rpc error: code = Unavailable desc = server not started”]
[2023/12/27 11:39:01.729 +08:00] [INFO] [client.go:146] [“server starts to synchronize with leader”] [server=pd-10.0.7.64-2379] [leader=pd-10.0.7.64-2379] [request-index=47800]
[2023/12/27 11:39:01.730 +08:00] [ERROR] [client.go:150] [“region sync with leader meet error”] [error=“[PD:grpc:ErrGRPCRecv]rpc error: code = Unavailable desc = server not started: rpc error: code = Unavailable desc = server not started”]

你一共部署几个PD节点?

如果是3个节点,那么一次性删除3个pd节点,集群肯定不能正常运行了。
PD 集群承担的是整个集群的大脑角色,节点起来后通过其leader对外提供集群服务,全部节点都删除deploy目录后,可能已经丢失了原有集群的关键元数据了。恢复起来会很麻烦。关键是要TiKV数据不丢。

好,3个PD都删除了,你重建集群吧

将3台的pd的deploy目录删掉后,然后新部署pd集群,具体是怎么操作的,怎么新部署的?原来集群几个pd?

日志明显的告诉了你,没有PD Leader了。

一共3个PD节点

一共3个pd。操作方法是: 先删掉3台的deploy目录,然后新建了1个只有pd节点的新集群,然后将depoly目录拷贝到之前的pd目录下

模拟的好,我也想知道全部pd删除,数据也丢了怎么恢复

重建集群是指只要重建pd集群,还是全部都要重建呢

参考下这里吧

2 个赞

您测试场景是什么?高可用测试丢3个PD吗?这个场景不合理,所以建议您重新设计场景,重建一个新环境测试,这是恢复您测试集群又快又好的办法
如果您就是在测试PD数据完全丢失,重建PD,那就按重建PD来做,参考:https://docs.pingcap.com/zh/tidb/stable/pd-recover#方式二完全重建-pd-集群

这个测试没什么意义吧,正常来说生产环境也不可能会同时坏3个节点啊。

感谢回复,就是想测一下一些极端的场景看能否恢复,以后如果上生产,心里也比较有底

感谢回复,我按照这个文档成功了

按照楼下发的文档,操作成功了

真的一篇很赞的文章,值得深入学习。

pd集群只是存储元数据信息,并且是通过tikv心跳上报pd集群的所有数据丢失后,整个tidb集群可以通过重建pd集群修复。

PD存储的信息没了,就是一个空壳

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。