tidb 集群无法启动

好的,我试下

没启动tikv之前


开启tikv之后就有数据了。我还开启调度呢

这怎么回事啊:innocent:,但是我和上一次做比较,数据量少了一点点

现在什么状态?做了哪些

还是没去掉,执行一次,少几条或者几百条数据

你现在看的store和前面的不一样啊,

一样的store id,因为有很多个,我是通过这个找的,/home/tidb/.tiup/components/ctl/v5.2.2/pd-ctl -u http://172.16.120.124:2379 store check offline |grep id

前面是15698413 后面就成了34673997 ,能贴个tiup display完整输出吗

刚才有做了一遍,但是看到tidb起来了,但是原本正常的tikv有几个没有起来

以前正常的tikv现在起不来,报这样的错误

image 也无法查询

是只处理了这一个store吧,之前有缩容了几个?

不是,处理了很多个。34673997

15698413
15698410

15698412 因为这些都是无效的节点上面的。

现在正常的无法启动,我可以通过缩容,将他们缩掉吗,缩容是不是他们自己的region就会偏移到其他还有的节点上面,还是说,我还要通过刚才的方式,继续偏移

你最初缩容怎么做的? 你看前面链接文章里找下 查找3个副本都没有的 脚本,然后检查下看看有多少全丢失的region,这些得重建里面数据肯定没了

缺失一点数据没有关系,现在我是tikv有6个挂了,导致tidb无法查询数据,无法使用。已经不希望找回所有的数据了。缩容是IP是172.16.120.9和 172.16.120.10 ,我同事是正常缩容,然后offline,很长时间,因为数据量大,所以他又停掉了,然后加了force强制缩容,后面就出现整个集群卡住了,无法使用,然后他重启所有集群,就起不来了

看你现在的操作不止是 .9 .10上做了缩容操作 .123上也做了, 在同一主机上的tikv应设置相同的label 保障同一主机上不会有相同region的副本,避免出现多副本失败的情况,你现在一下弄了这么多store 肯定有很多全副本丢失了, 多副本恢复的步骤是在 所有正常的tikv上去unsafe recover 下线的store,你先 按下面
故障节点为store id 1,5,6): pd-ctl region --jq=".regions\[] | {id: .id, peer\_stores: \[.peers\[].store\_id] | select(length as $total | map(if .==(1,5,6) then . else empty end) | length>=3) }"
检查下你下线的store上的region 都丢的

我是根据这个找到我们所有挂掉的store id。/data/tools/tidb-community-server-v5.2.2-linux-amd64/pd-ctl region --jq=’.regions[] | {id: .id, peer_stores: [.peers[].store_id] |
select(length as $total |map(if .==(17625573,15698410,34673997,33515118,17625571,17625570,1,7,15698413,17625576,34784748,15698411,15698412,17625568) then . else empty end)|length>=$total-length)}’

你说的我要根据1 5 6 去找吗

store 列表里,你先找那些你下线的 、store delete 操作的节点,之前这些不是都unsafe recover了

是的,我在查找。image ,这些都是失败的

down的不算,就你做过缩容、store delete 、unsafe recover的,你这些offline 还有没有数据目录没被删除的 ,哟的话 改为up状态停止缩容: curl -X POST http://:/pd/api/v1/store/<store_id>/state?state=Up