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

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 个赞