tikv无法启动,日志报错"failed to create kv engine: Storage Engine Corruption: Can't access /25610279.sst: IO error"

【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.4.3
【遇到的问题:问题现象及影响】
tidb集群其中一个节点硬件问题多次重启,之后该节点的tikv就启动不了了,接整个集群的tikv都无法启动

日志如图

拓扑结构如图

单个tidb和 tikv能拉起来吗?tiup cluster start cluster-name --node

你是节点全down

看一下启动日志

重启后文件损坏了吧

检查下数据目录和文件是否存在,访问权限是否都正常?如果权限正常。那估计是有文件损坏了,我的想法是,一个一个节点启动。把坏的这台剔除节点。重新初始化后,再加入集群。

目录存在,文件也存在,权限也正常,但是报找不到的文件是的确找不到。单个节点启动也不行。

tikv_log (29.8 KB)

那就是文件丢了啊。尝试用tikv-ctl工具处理下丢失的文件。

好了咩有

没有。

这个很可能存在的sst文件都是正常的。就是有文件丢失。那问题来了,文件怎么就不见了啊?用tikv-ctl把丢失的文件从集群里清理掉,试过吗?


对,sst都正常。
没有找到删除命令啊

官方手册有的。搜tikv-ctl

你是说 tombstone 吗? 不行

指定的 sst 文件可能已经损坏,导致无法访问

找出region和sst文件对应关系。然后参考下面官方命令:
tikv-ctl ldb --db=data/tikv-21107/db unsafe_remove_sst_file “data/tikv-21107/db/000014.sst”
tikv-ctl --db=data/tikv-21107/db tombstone -r 4 --pd

你得意思是直接用bad-ssts里面的删除?可是我没有bad ssts,也没有这个sst和region的对应关系