三节点tikv,其中一个tikv节点服务器被格式化了,求教怎么恢复。

【 TiDB 使用环境】准生产环境
【 TiDB 版本】6.5
【复现路径】各位好! 求教下tikv三节点中,突然一个节点服务器损坏了,我怎么恢复这个tikv节点。
【遇到的问题:我尝试过tiup cluster check /home/tidb/tidb/topology.yaml --user tidb -p -i /home/tidb/.ssh/id_rsa ,无法进行脱离tikv节点的检查。现在不知道如何开始才能修复这个节点。
想问想是不是必须通过缩容,扩容才能进行恢复。
【附件:截图/日志/监控】

1、 扩容一个tikv,需要有可用的机器
2、 原有的tikv需要下线, 先tiup cluster scale-in 或pd-ctl store delete 让其进入offline状态 ,最后会成为tombstone,之后pd-ctl remove-tombstone

1 个赞

tikv只有三个节点,挂掉了一个,建议赶快找台机器扩容一个进来,先恢复集群

集群是正常的 数据库 也能用。主要是现在还没有多余的机器进行扩容操作。服务器商只是对服务器进行了初始化操作。

有具体点的操作流程吗 ,我看您的2操作只是移除了tikv 节点重新创建和加入集群怎么操作。

只有3个tikv,坏掉的这个没办法强制缩容,先想办法扩容一个吧

你那个服务器不是被格式化了吗?就在这台被格式化的服务器上扩容一个新的tikv,再把旧的缩容掉。

尤其是 新机器可用环境检查,移除,重新加入集群,能具体点或者给个帖子指导下。

不行吧,还是得先扩容一个节点,直接在本机扩容我觉得应该会报错

我是不是应该考虑先缩容,然后把格式化的机器在扩容进去。我主要怕ip冲突或已有配置冲突,触发其他bug。

我是说先扩一个,再缩容呀,这标题不是写了,装tikv的一个机器被格式化了,就找这个机器扩容呗,端口改一下,然后把旧的缩掉

丢一个副本不影响。
ip换一个就能加进去。如果不换ip的话,就得把原来的store删掉才能启动。

先扩容,只剩2个tikv了没法缩容这个故障节点

:thinking:改端口应该可以的

是的,原机器上扩容一个tikv,相当于一个机器上混部两个tikv,但是这两个有一个是不可用的,扩进去的改端口就行

好的 我试试 谢谢各位。

1、扩容,如果还在原来的机器上部署tikv你要先把原来的tikv缩容或者直接使用新的端口 ,扩容时指定tikv配置就行 从原来的配置里复制一个改改就行。
2、缩容操作 参考下面

大佬,有个问题不是很理解,服务器被格式化了,数据是不是丢失了?那集群还能正常访问吗?还是说服务器不可用的瞬间,坏的服务器上的leade迁移到了正常的服务器上,集群仍然正常访问,数据无损?

这里有几个问题点:
1.数据被格式化的那个TiKV节点,在上面的leader如果当时有被访问到,是会有影响了,由于请求不到数据会失败。如果来访问tidb集群的请求有重试机制,那么失败后重试一般就可以恢复正常。
如果是请求在别的正常的TiKV节点,其请求是正常的,不受影响。

2.集群默认3副本,所以只有1个TiKV节点被格式化时,还剩下2个副本,数据是不会丢失的,在比较短的时间内另外两个副本可以正常选出leader,可以正常对外服务。

所以,集群对外整体是正常访问的,集群数据不会丢失,只是在那个节点挂掉的瞬间,部分访问会有抖动。TiDB的自愈能力还是很强的。

1 个赞

明白了 谢谢