紧急求救!!!数据库没了sa

今天unsafe-recovers 下掉两台kv,重启集群,发现有报错 tikv server timeout,然后就重启了tidb,但是有一台db无法重启,就把这台db踢出集群,再连数据库就发现连不上了,然后尝试用root用户登陆,但是密码没了,脸上数据库后发现库都没了,系统表也重置了,有大佬能提供思路吗,万分感谢啊

3 Likes

你好,请提供下操作前后的背景信息:

  1. TiDB 集群版本信息;
  2. 做 unsafe-recovers 操作前的背景信息。
    做这个操作前,集群出现了什么问题,然后做了什么操作,集群的整体拓扑也给下,还有副本数等。
  3. 踢出集群操作,是指 scale-in 了一个 TiKV 节点吧?
3 Likes

1.数据库版本4.0.8
2.做unsafe-recover操作是因为这两台kv磁盘性能下降,数据库查询延迟很高,cpu飙升,正常缩容无法完成,leader和region没有下降,所以做unsafe-recover操作紧急恢复集群,unsafe-recover之前:3台pd,10台kv,14台kv
3.那台db无法重启,手动重启在display时候显示异常,所以scale-in了

2 Likes

根据上面的情况分析,怀疑系统表元数据丢失了,也就是其所在的 region 可能正好在你“下掉的两个 TiKV 节点”上。在三副本的集群下(你这边没有给出副本数是多少),两个 TiKV 节点故障,是会导致 raft 多数派被破坏的,也就会出现丢数据情况,这是预期的。这种情况下,丢失了数据,我这边也没什么好的建议,可能要看其他大佬的意见了。

当需要同时下掉两个 TiKV 节点时,建议一台一台下。比如 A、B 两个 TiKV 节点要下掉,建议先下掉 A,保证 A 上所有 leader region 已在其他正常 TiKV 节点上满足 raft 多数派协议,最好能够保证整个集群 region 是健康的(都有完整的三副本),这样就可以直接下掉 B 了。否则,在下掉 B 时,需要检查是否有 region 会出现不满足 raft 多数派协议的情况。(一旦出现不满足多数派协议,就可能丢数据)

也可以同时下,但事先需要检测是否会导致 region 出现不满足 raft 多数派协议的情况。pd-ctl 有个命令可以检测,具体我忘记了,你可以找找。

1 Like

现在有办法恢复吗,大佬,没做数据备份:sob:

1 Like

你好,这种情况,我这边没有什么好的建议。你可以把这个问题“加急”,从而寻求社区专家的帮助。

如果你需要获得快速 “加急”处理问题的权限,加快问题响应速度, 点击完成认证,获得“加急”处理问题的权限,方便你更快速地解决问题。(如果已经认证过,这步可以忽略)
认证后在 导航栏:我的团队-全部主题-加急,直接加急你的问题

1 Like

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。