数据库突然报错Region is unavailable

生产环境不好关闭kv来检查sst

提个思路,可能是 PD 的调度策略或 Region 的分布策略不合理,导致某个 Region 所在的 TiKV 节点无法正常提供服务

检查bad-ssts 需要多久啊 ,这个kv上有5万多个sst文件,卡半天了

按照你的文档执行–force 也没成功


有损坏的sst文件吗?

有10个文件有问题 在修复 我发现官方文档有很多坑啊 这个data-dir目录和前面的不一样了

版本有变化,–db 指定到db目录 ,–datadir指定到 db 上一层。

这个tikv上有问题sst region,试试用pd-ctl operator add remove-peer <region_id> <store_id> 命令能否将这个region peer删除

如果我不修复这些sst 直接把这个节点缩掉是不是一样的效果

先试试上面的remove-peer吧 ,缩容代价就太大了

这个sst文件损坏一般是什么原因造成的呢?

启动tikv一段时间后kv自己重启了能帮忙看下吗,这个是日志,还有一些down的region

1.log (27.6 KB)

[2023/07/17 09:41:18.740 +08:00] [ERROR] [store.rs:597] [“handle raft message failed”] [err_code=KV:Raftstore:Unknown] [err=“Other("[components/raftstore/src/store/fsm/store.rs:1614]: [region 348674592] region not exist but not tombstone: region { id: 348674592 start_key: 7480000000000002FF295F729C00000078FFFC790B0000000000FA end_key: 7480000000000002FF295F729C00000079FF08FB8A0000000000FA region_epoch { conf_ver: 1436 version: 2306 } peers { id: 348674593 store_id: 891996 } peers { id: 348674594 store_id: 1133876 } peers { id: 348674595 store_id: 782568 } }")”] [store_id=1133876]

有没有试remove peer 从store 1133876 里删除

没有 修复sst的时候只执行了个命令unsafe_remove_sst_file 和tombstone -r

remove peer 试下,那个tikv 现在起不来了吧

起来了 只是这个kv一直在刷这个截图里的日志 正常吗

pd-ctl region xxx 看下region状态

查了2个刚日志里报错的region


还是有80多个down_peer_region ,一直自动修复不了,请问这个怎么手动修复好?

用operator add remove-peer 把这个kv上的peer都删除了 80多条记录一条条删除累死了,现在所有region正常了
image