学习来了
准确的说,是地图丢了,但是把路再走一遍就能重绘出来。
其实备份的就是个集群配置文件。
good idea, 比如按天check是否变化,如果有变化就执行备份
好的,感谢大佬指点,受益匪浅
那按你的说法,是不是相当于不修改集群配置或者扩缩容的情况下,备份的内容永远不会变化?
还有个疑问,就是操作还该命令备份时,是以root用户还是tidb用户?
不一定是root,其实就是你登录中控机使用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 目录进行备份)
执行部署后拉起集群。
按照上面步骤已恢复。
建议还是定期备份至其他位置。
你都说没备份了。。。
蹲着看看有没有好办法
如果没有备份,恢复的难度挺大。需要和官方联系看看有没有其他特殊办法。
楼主都已经解决啦~
看有没有开启日志
mark 看来还是有单点风险