灾难恢复求助

【TiDB 使用环境】生产环境 /测试/ Poc
【TiDB 版本】 8.5.0
【操作系统】
【部署方式】K8S 部署
【集群数据量】1
【集群节点数】3

想问一下有办法从 tikv 的数据恢复整个集群吗

https://docs.pingcap.com/zh/tidb/stable/online-unsafe-recovery/#第-1-步指定无法恢复的节点 官方文档里有介绍

我现在是有 tikv 的完整数据文件 但是集群是一个新集群 文档好像没有这种相关介绍

有pd的数据吗?

看看这个https://docs.pingcap.com/zh/tidb/stable/pd-recover/

pd 的也有 但是直接把 pd 数据覆盖之前的元数据 pd 就一直处于无法访问的状态

直接重建pd吧

主要是不知道重建 PD 之后数据怎么导回到 kv 直接把之前的 kv 文件全都复制进去吗

猜想:可以解析sst文件获取数据表metadata,在新集群中创建相关的数据库及数据表
然后解析全部sst文件,按时间逆序排列重新执行所有操作变更,

:thinking:不需要导啊,直接用原来的tikv节点不可以么?

在原来的基础上,重建pd就可以。

你可以使用 kubectl create 命令来创建一个同名同配置的集群,之前保留下来未被删除的 PV/PVC 以及数据会被复用。参考https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/recover-deleted-cluster/

因为集群重建了 所以只是保留了原先 pvc 的数据 但是集群没有这些 pvc 的元数据即使同配置启动也是启动的新的集群

我尝试一下这个方案吧