Tiup中控机被清理了,无备份如何恢复?

学习来了

:yum:准确的说,是地图丢了,但是把路再走一遍就能重绘出来。

2 个赞

:yum:其实备份的就是个集群配置文件。

1 个赞

good idea, 比如按天check是否变化,如果有变化就执行备份

1 个赞

好的,感谢大佬指点,受益匪浅

那按你的说法,是不是相当于不修改集群配置或者扩缩容的情况下,备份的内容永远不会变化?

还有个疑问,就是操作还该命令备份时,是以root用户还是tidb用户?

不一定是root,其实就是你登录中控机使用tiup 的那个普通用户就行。

:yum:我是这么理解的

1 个赞

的确如此

这个问题好啊

值得学习一下,中控机备份很重要啊

1、对数据库进行全备

建议用br对数据库进行全备,防止后续步骤中出现意外,保障有恢复的兜底方案

br backup full \ –pd “${PDIP}:2379” \ –storage “local:///tmp/backup” \ –ratelimit 128 \ –log-file backupfull.log

2、安装tiup

下载同版本的数据库安装包安装tiup
安装完成后执行

source .bash_profile

安装tiup cluster

tiup cluster

3、手工编辑 topology.yaml 文件

生成拓扑文件模板

tiup cluster template > topology.yaml

对集群内所有的节点进行逐一登录检查,获取 topology.yaml 文件中所需要的安装路径、数据路径、端口号、以及参数

ps -ef|grep tidb-server ps -ef|grep pd-server ps -ef|grep tikv-server ps -ef|grep tiflash ps -ef|grep alertmanager ps -ef|grep dm ps -ef|grep pump ps -ef|grep cdc ps -ef|grep drainer ps -ef|grep alertmanager ps -ef|grep grafana ps -ef|grep prometheus ps -ef|grep monitor

进入到匹配到的部署目录下的config 目录,cat .toml 文件获取已经设置过的参数
在 topology.yaml 文件中务务必保证 deploy_dir \data_dir \port \config 等都跟集群中的实际情况一致

4、批量将 instance 级别的 bin/{instance}-server 文件 mv

因为使用已发布的 tiup 进行部署,需要覆盖 instance 级别的 binary 文件,但是对正在运行的服务没有影响,替换过程中可能出现 Text file busy 问题,所以需要手动将所有的 binary 文件都 mv 成 old,或者其他名字(mv tidb-server tidb-server_old),此步骤务必保证操作完全,避免 deploy 出现问题。

5、根据 tiup 部署集群步骤,进行 deploy 操作

tiup cluster deploy {cluster-name} {version} ./topology.yaml --user {username} -p

由于当前 tiup 并没有集群的元信息,所以 deploy 不会出现目录端口冲突。deploy 会下载指定版本的 binary 文件并覆盖到原集群。(因为目前是非常规 deploy 所以覆盖是可以理解的正常操作,upgrade 会将 bin 目录进行备份)
执行部署后拉起集群。

按照上面步骤已恢复。


建议还是定期备份至其他位置。

2 个赞

:+1: :+1: :+1:

1 个赞

你都说没备份了。。。

蹲着看看有没有好办法

如果没有备份,恢复的难度挺大。需要和官方联系看看有没有其他特殊办法。

:joy:楼主都已经解决啦~

看有没有开启日志

mark 看来还是有单点风险