前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TiDB 集群服务器宕机怎么办?

TiDB 集群服务器宕机怎么办?

作者头像
AsiaYe
发布2022-04-01 19:21:55
2.5K0
发布2022-04-01 19:21:55
举报
文章被收录于专栏:DBA随笔DBA随笔

TiDB集群某台服务器宕机怎么办?

今天在线上遇到了一个TiDB服务器宕机的问题。这里总结下。

01

场景描述

TiDB集群中,某一台服务器宕机,这台服务器上部署的集群组件有PD、TiKV、TiDB。

宕机之后,服务器SSH不通了,其他机器无法登陆上去。我们使用下面的命令:

tiup cluster display cluster_name

查看拓扑的时候,发现拓扑中的Status一栏中显示Down,如下:

其实这种情况下,由于节点不可达,所以:

对于TiKV来说,会将这个节点上的Region Leader重新选举,而那些不是Leader的Region只是会少一个副本,影响相对较小;

对于TiDB来说,由于它是无状态的,业务可以通过其他的TiDB组件访问集群,没有什么影响;

对于PD来说,PD本身具有高可用,如果挂掉的机器是PD的Leader,那么会自动发生选举,如果不是Leader,那么对PD的影响也比较小,只是少了一个副本;

通常情况下,我们会使用prune命令来驱逐这些下线的节点,而在这种情况下,当我们使用:

tiup cluster prune cluster_name 命令

驱逐这个节点的时候,发现执行过后,这个Down的状态,还是没有消失

此时查看TiDB的Dashboard,发现这个标记为Down状态的节点,不在TiDB的Dashboard中,如下:

那么到底如何去掉display命令中这个Down的状态呢

02

服务器宕机处理方法

正确的姿势是应该先使用scale-in来缩容这个TiDB节点。

你可能会说服务器都宕机了,SSH肯定不通了,缩容不会报错吗?答案确实是会报错,而且会提示我们这个节点已经无法通过SSH连接,集群无法直接摘掉了。

正确的处理方法如下

这种情况下,需要借助scale-in操作里面的--force参数来将这个节点强制下线,因为节点宕机之后已经无法修复了。命令如下:

tiup cluster scale-in cluster_name --node xxxx --force

下线的时候,会提示如下:

我们需要按照提示,输入图中蓝色字体部分:

Yes,I know my data might be lost.

否则无法执行--force操作。

针对这个服务器,分别执行完TiKV、TiDB、PD的scale-in操作之后,可以发现再次使用display命令查看,标志Down 状态的节点就彻底下掉了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TiDB集群某台服务器宕机怎么办?
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档