服务器断电重启后集群无法启动

【 TiDB 使用环境】生产环境
【 TiDB 版本】7.1
【复现路径】服务器断电重启后TiKv和TiDB节点都没办法启动,尝试过使用tiup cluster restart 指令重启集群
【遇到的问题:问题现象及影响】服务器断电重启后 集群无法启动,只有pd节点是up状态。
【资源配置】
【附件:截图/日志/监控】
截图:

TiKv日志:
tikv0703.log (742.3 KB)

看起来文件有损坏,你这个环境是物理机吗?所有机器都断电了吗

[2024/07/03 20:13:22.629 +08:00] [FATAL] [server.rs:921] ["failed to start node: Engine(Other(\"[components/raftstore/src/store/fsm/store.rs:1230]: \\\"[components/raftstore/src/store/entry_storage.rs:657]: [region 16] 17 validate state fail: Other(\\\\\\\"[components/raftstore/src/store/entry_storage.rs:472]: log at recorded commit index [12510] 39842466 doesn't exist, may lose data, region 16, raft state hard_state { term: 12510 vote: 204 commit: 39842344 } last_index: 39842345, apply state applied_index: 39842466 commit_index: 39842466 commit_term: 12510 truncated_state { index: 39842459 term: 12510 }\\\\\\\")\\\"\"))"]

重新部署一下了

看看这吧。。。 专栏 - TiDB损坏多副本之有损恢复处理方法 | TiDB 社区

3 个赞

物理机上装的虚拟机,TiDB装在虚拟机上的,物理机断电了,所有的节点都断了。这种情况还有救吗

有无损的修复方案不?或者损失较小的方案

就得有损恢复了,有损恢复不一定你的数据就一定影响很大的,可能丢失的数据是一些你不要的数据,或者不重要的数据,先恢复再看吧

发下别的组件的日志看看,

恢复前,把tikv的物理数据先备份一份。不然操作失误是不可逆的。

备份每个tikv节点的 /tidb-data/tikv-20160 这个目录是吧?

就是说有损恢复可能损失的是出现问题那一小段时间的数据是吧?

服务器断电真的是大多数工作环境都存在的,我也想知道怎么样才能在不损数据的情况下,最小恢复。

pd.log (60.0 KB)
tidb.log (15.8 KB)

不一定,看你物理机的磁盘有没有因为断电而产生故障,如果断电直接导致某个磁盘挂了, 而你又没做raid的话,也很难,当然tidb是3副本机制,假如你3个tikv用的三块不同盘的话,其中一块挂掉其实无所谓的

对备份你配置中指定的那个data目录。可以尝试修复region,还有种最坏的恢复办法但是不推荐, 网络故障集体迁移IP故障恢复过程 - TiDB 的问答社区 (asktug.com)

嗯嗯,磁盘应该没坏,磁盘还能挂载上,也能看到磁盘下的文件

:flushed:正常情况下,都要求有UPS,甚至柴油发电机的。一般不应该出现断电情况。

2024/07/03 20:15:44.482 +08:00] [FATAL] [server.rs:921] [“failed to start node: Engine(Other("[components/raftstore/src/store/fsm/store.rs:1230]: \"[components/raftstore/src/store/entry_storage.rs:657]: [region 16] 17 validate state fail: Other(\\\"[components/raftstore/src/store/entry_storage.rs:472]: log at recorded commit index [12510] 39842466 doesn’t exist, may lose data, region 16, raft state hard_state { term: 12510 vote: 204 commit: 39842344 } last_index: 39842345, apply state applied_index: 39842466 commit_index: 39842466 commit_term: 12510 truncated_state { index: 39842459 term: 12510 }\\\")\""))”]
3个节点都是报这个错吗?要是都因为这个原因起不来,大概只能有损恢复了

3个节点都是这个报错

先有损恢复吧,你这是都在一块盘上?