PD服务无法启动

【TiDB 使用环境】生产环境
【TiDB 版本】6.1.5
【操作系统】CentOS79
【部署方式】机器部署,混合部署,共3个PD节点
【问题复现路径】服务器于凌晨发生自动重启,此台服务器上工有1个pd实例,两个tikv实例
【遇到的问题:问题现象及影响】
目前tikv实例恢复正常,但pd服务无法启动,报如下错误:
[2025/09/30 01:17:19.425 +08:00] [FATAL] [main.go:117] [“run server failed”] [error=“[PD:leveldb:ErrLevelDBOpen]leveldb: manifest corrupted (field ‘compare
r’): missing [file=MANIFEST-001432]: leveldb: manifest corrupted (field ‘comparer’): missing [file=MANIFEST-001432]”] [stack=“main.main\n\t/home/jenkins/ag
ent/workspace/build-common/go/src/github.com/pingcap/pd/cmd/pd-server/main.go:117\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:250”]

且dashboard也在此pd节点上,目前也无法使用!

此类问题能够在线进行恢复吗?dashboard无法能否切至其他pd节点上?

1 个赞

像是文件损坏了,可以缩容然后再扩容

1 个赞

可以先缩容看看,主要是tikv实例能不能启动。

1 个赞

tikv没有问题,但这个pd根据日志分析,应该是文件损坏了,我看了官方的修复方式,好像都需要重启整个pd服务或集群,目前生产没发停产,所以想问问有没有在线修复的方式;再一个,dashbaord服务能不能手动迁移至其他pd节点上

1 个赞

缩容就是在线处理方式,只缩容这一个节点的pd

1 个赞

你直接再扩容一个pd 节点试下,如果pd leader 能切到这个节点那就OK了

1 个赞

怎么实现只缩容这一个节点,除了deletePod,好像没其他方式。 我也遇到pd文件损坏的情况。
直接修改副本的方式,目前实验来看,会缩容掉正常运行的副本。

1 个赞

缩容就是只缩容指定的pd。ip+端口号,截图缩容的是tikv,缩容pd的接口默认是2379
https://docs.pingcap.com/zh/tidb/stable/scale-tidb-using-tiup/#2-执行缩容操作

哎,我使用TiOperator部署在k8s上面,没有tiup,难!

:flushed:那太难了,搜搜看看有没有吧。

看看这个可以吗?

文件损坏了,缩容再扩就可以

文件损坏,使得该pd实例无法启动, 备份或healthy pd节点重建损坏的pd实例,不建议直接在线修复损坏的 LevelDB 数据目录。

或者试试缩容再扩呢

建议在扩容一个 pd,然后把坏掉的 pd 在下掉,先扩后缩。

另外,混部会有些许风险,如果资源允许,尽可能分开部署。

看上去好像真的是有个文件损坏了

从错误信息看,这是PD节点的LevelDB manifest文件损坏,导致PD无法启动

PD 节点的 LevelDB 元数据文件(MANIFEST)损坏或丢失

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