PD同时重启后TIDB启动了新的集群

【 TiDB 使用环境】
测试环境: 基于tidb-operator部署的 v5.3.0
18

【现象】
测试环境3个pd节点部署在同一机器上,机器故障后pd集群在别的机器重启了。tikv使用的pvc没有变化但是所有数据都丢失,启动了一个新的tidb集群([“critical error”] [error="get timestamp failed: rpc error: code = FailedPrecondition desc = mismatch cluster id, need 7122651197468007202 but got 7054113717097513058)。

请问数据能否恢复,具体问题是啥

【日志】
日志写入了kibana,集群重启的时间点的日志:

可尝试使用pd-recover来重建pd集群

我参照这里(https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/pd-recover)用7054113717097513058作为cluster_id基于pd-recover重建了pd集群,然后tikv集群起不来了。。

[2022/07/21 14:52:27.557 +08:00] [ERROR] [server.rs:1052] [“failed to init io snooper”] [err_code=KV:Unknown] [err="“IO snooper is not started due to not compiling with BCC”"]

[2022/07/21 14:52:27.668 +08:00] [INFO] [mod.rs:227] [“Storage started.”]

[2022/07/21 14:52:27.671 +08:00] [FATAL] [server.rs:732] [“failed to bootstrap node id: “[src/server/node.rs:241]: cluster ID mismatch, local 7122651197468007202 != remote 7054113717097513058, you are trying to connect to another cluster, please reconnect to the correct PD””]

这个是对的clusterid。
region相关信息存在每个tikv的rocksdb-data的raft columnfamily中,pd中的数据丢了想恢复没什么特别难的,把cluster-id,alloc的region、peerid搞大,基本上就能恢复数据。

没有进行pd-recover之前,从pd的监控面板和 kubectl get tc ${cluster_name} -n ${namespace} -o='go-template={{.status.clusterID}}{{"\ "}}'这个命令来看pd集群的clusterID 已经是7122651197468007202。可是所有的表结构(包括mysql,账号信息)都不存在了

就按tikv说的就行,tikv里面的数据记录的是准的。

cluster id指定错了,用7122651197468007202

还是不行,从磁盘占用空间来看数据还在.但是什么表都没了,有可能是别的cluster id吗

报什么错吗,应该就是tikv日志里提示的那个cluster id,重建pd集群前要把pd的数据清掉

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。