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

【是否原创】否
【首发渠道】
【首发渠道链接】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的状态,请检查新的中控节点和集群各节点之间的网络是否是通的;

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

4赞

很实用,学习了~

做个rsync同步

这是基本套路