写点什么

TiDB 集群之中控不可用,怎么办?

  • 2022 年 7 月 11 日
  • 本文字数:1006 字

    阅读完需:约 3 分钟

作者: seiang 原文来源:https://tidb.net/blog/892151d1


【是否原创】否


【首发渠道】


【首发渠道链接】http://www.seiang.com/?p=1221


【正文】


TiDB在集群部署方便可以说非常的方便,尤其是 4.0 版本引入了 TiUP 集群运维工具,日常管理维护非常的方便;通过 TiUP cluster 组件就可以进行日常的运维工作,包括部署、启动、关闭、销毁、弹性扩缩容、升级 TiDB 集群,以及管理 TiDB 集群参数。目前 TiUP 可以支持部署 TiDB、TiFlash、TiDB Binlog、TiCDC,以及监控系统。


通过 TiUP 我们可以同时管理多套TiDB集群环境、包括 DM 集群等等,那么问题来了,如果中控节点宕机了或者要迁移中控,怎么办?那么多套集群环境,就没法统一管理了?本文针对该问题进行具体的说明;

问题背景

如果 TiUP 中控节点宕机,该如何进行恢复?那么我们从两个层面进行分析,一方面,中控有备份,另一方面,中控没有备份;

一、中控有备份

中控有备份,那么我们可以直接通过中控的备份进行恢复;


中控备份:


TiUP 相关的数据都存储在用户 home 目录的 .tiup 目录下,若要迁移中控机只需要拷贝 .tiup 目录到对应目标机器即可。


中控备份:tar czvf tiup.tar.gz .tiup。为了避免中控机磁盘损坏或异常宕机等情况导致 TiUP 数据丢失,建议线上环境定时备份.tiup 目录,写一个简单的脚本就可以搞定。


恢复方法:


1、把 tiup.tar.gz 拷贝到目标机器 home 目录。


2、在目标机器 home 目录下执行 tar xzvf tiup.tar.gz。


3、添加 .tiup 目录到 PATH 环境变量。


如使用 bash 并且是 tidb 用户,在 ~/.bashrc 中添加 export PATH=/home/tidb/.tiup/bin:$PATH 后执行 source ~/.bashrc,根据使用的 shell 与用户做相应调整。

二、中控没有备份

针对中控没有备份,那么其实恢复方案也相对比较简单


恢复方法:


1、在新的中控机器上,重新部署 tiup


2、根据运行的集群组件,重新配置一个集群的拓扑文件


3、执行 deploy 命令:tiup cluster deploy tidb-xxx ./topology.yaml


4、执行完成之后,不需要 start 集群,因为集群本身是在运行的,执行 display 查看一下集群的节点状态即可;


注意事项:


1、新的中控节点,必须要包括和各个节点网络都是通的,并且 ssh 也是互通的


2、无论是通过备份恢复还是重新编写拓扑配置文件在新的节点恢复中控,如果恢复完成后,查看集群的节点状态显示 down 或 N/A 的状态,请检查新的中控节点和集群各节点之间的网络是否是通的;



好了,今天就聊到这里吧,大家有其他的恢复方法,可以一起交流学习;


用户头像

TiDB 社区官网:https://tidb.net/ 2021.12.15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiDB集群之中控不可用,怎么办?_管理与运维_TiDB 社区干货传送门_InfoQ写作社区