尝试用原有数据重建 tidb tikv 报错无法启动

【TiDB 使用环境】生产环境 /测试/ Poc
【TiDB 版本】8.5.1
【操作系统】Centos 7.9

尝试用原有数据重建 tidb pd 已经恢复 但是 tikv 无法正常启动 并且会生成一个 和原始数据一样大的space_placeholder_file
使用 tiup 重建的集群 目前是单节点想尝试恢复数据

[2025/06/16 16:36:46.450 +08:00] [ERROR] [engine_factory.rs:197] [“failed to create kv engine”] [err=“Engine(Status { code: IoError, sub_code: None, sev: NoError, state: "Corruption: Missing WAL with log number: 2475638." })”] [path=/data/tidb-data/tikv-20160] [thread_id=1]
[2025/06/16 16:36:46.450 +08:00] [FATAL] [server.rs:1724] [“failed to create kv engine: Storage Engine Status { code: IoError, sub_code: None, sev: NoError, state: "Corruption: Missing WAL with log number: 2475638." }”] [thread_id=1]

完整 log 附件
tikv.log (2.8 MB)

怎么恢复数据? 从备份恢复么?

不是 是直接挂载的原先数据

pd也是挂载的原先的数据吗

对的 PD 也是原先的数据

日志中“Missing WAL with log number: 2475638”说明 TiKV 在启动时发现关键的 WAL 文件缺失,导致存储引擎无法恢复数据,进而启动失败。虽然 PD 恢复正常,但 TiKV 由于 WAL 文件缺失而无法启动,表明数据目录不完整或损坏,TiKV 存储引擎无法建立。你需要 检查数据目录中 WAL 文件是否完整,尤其是缺失的日志编号对应文件是否存在。

查了日志对应的文件是不存在 有办法有损恢复其他数据吗

没有备份数据吗?

可以参考下这份文档 https://docs.pingcap.com/zh/tidb/stable/online-unsafe-recovery/

对 没有备份数据…

这个是有要求 kv 在线吧 我现在 kv 没办法上线

这个还真的不知道,我看文档里没写

只剩一个 tikv 了?如果是测试环境,直接删了重建吧

你这估计只能从备份来恢复了,但你又没备份

恢复成功了 看了一下 wal 是放在其他目录保存了 重新移动 wal 到 db文件夹后启动成功

1 个赞

还是要有备份才行