TiUP持久化数据完全丢失,如何恢复?

【 TiDB 使用环境】生产
【 TiDB 版本】4.x
【遇到的问题】TiUP所在机器彻底宕机损坏,无法管理集群
【复现路径】
【问题现象及影响】

这边有一套4.x的环境,pd,tidb,tikv,tiflash等若干组件都有,分布在10多台机器上,正常其部署维护是通过中控机TiUP管理的,然而现在的问题是中控机所在的机器已经故障,没了,也没有对tiup相关持久化资源进行备份;导致现在对这套集群的维护、迁移之类的操作无从下手,想问下这种情况还能降级到手动维护集群吗(没有看到官方有相关手动维护的文档),或者说通过某种方法重建TiUP之类

找个新的中控机重建环境就好了

  1. 安装 tiup 工具包

  2. 配置原来集群的信息,topology.yaml (需要将原来集群节点的信息都录入)

  3. tiup cluster deploy tidb-xxx ./topology.yaml

  4. tiup cluster display tidb-xxx

查看集群的状态即可…

建议建个定时任务,定时备份 tiup 的环境信息

tiup cluster deploy tidb-xxx ./topology.yaml 这个操作是严格幂等的吗,集群信息能有,不能确定完整,怕操作出错覆盖了原有的资源

得逐个节点看一下pd,tidb,tikv实例的参数,避免出现参数覆盖,和以前不一致的情况,这个操作是幂等的

手撕重现配置文件,集群已恢复

:call_me_hand::call_me_hand::call_me_hand:还是定期做好tiup备份吧,避免以后在出现类似的情况

嗯,tiup这个工具,要是能与git,更无缝的集成就好了,类似Ansible那样,需要持久化的数据,全部放到git上,所谓的 gitops 思路 :joy:

数据库肯定是不允许外网的……,如果能自动往所有集群内的机器发一份就好了,很小概率集群所有机器都挂:grimacing:

关键配置文件还是需要备份的

在更改集群的什么配置的情况下,需要备份.tiup目录呢?拓扑结构?集群配置文件?

任何修改命令都得备份,tiup 现在倒是有个备份命令,但是还得自己写备份脚本什么的,我这边准备把 tiup 底层放到云盘上

你是说github外网吗? 我这边说的是企业内网私有化部署gitlab之类的git server

那可以的,我的想法是如果能不入侵,tidb自动做到类似于tikv的多副本一样分发备份到别的节点:grin:

类似个k8s kubectl 、 ceph 这样的命令行工具,可以安装到集群所有节点,持久化数据就存在集群自身, 有个导入,导出这样的功能,就完美了

这块应该不是密等的,可以手动安装个 tiup;
然后,自己手动补充下 meta.yaml(按照记忆补全),之后 reload,这里的 ip、port、配置、label 都要对;
reload 后应该能找回来。对应的信息就要,通过现有的机器找了 pd-ctl get storeInfo,参数如果能连数据库的话,可以从 cluster_config 中查出来。