【运维实操】TIDB v6.1.1:全量备份、全量恢复和增量备份方法解析

网友投稿 467 2023-11-24

背景:由于公司要求必须保证数据库数据安全,我们生产环境的数据库采取全量备份+增量备份+实时同步从库的方式保证数据库的高可用,本文介绍我公司生产环境的数据库备份方式。

注意:我们使用实时同步数据到从库的方式保障高可用(使用pump+drainer),同时支持恢复任意时刻数据的操作以防止数据的误删除,会另文介绍。pump生成binlog日志,drainer同步到下游数据。

说明:本实操使用了Tidb的BR工具、pump+drainer组件实现数据库的全量备份、恢复、增量备份(备份为文件进行保存),以下是实际操作:

一、安装Tidb,此服务作为恢复数据的目标机器(此处为找回数据使用,为节省资源,安装Tidb单节点) 安装步骤如下:

1、安装tiup工具

curl --proto =https --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh |sh

2、设置环境变量

source .bash_profile

3、安装组件

tiup cluster

4、编写集群配置文件topology.yaml

global: user: "tidb" ssh_port: 22 deploy_dir: "/tidb-deploy" data_dir: "/tidb-data" pd_servers: - host: 192.168.195.139 tidb_servers: - host: 192.168.195.139 tikv_servers: - host: 192.168.195.139 tiflash_servers: - host: 192.168.195.139 monitoring_servers: - host: 192.168.195.139 grafana_servers: - host: 192.168.195.139 alertmanager_servers: - host: 192.168.195.139

5、检查风险

tiup cluster check ./topology.yaml --user root -p

6、修复风险

tiup cluster check ./topology.yaml --apply --user root -p

7、部署集群

tiup cluster deploy qzn v6.1.1 ./topology.yaml --user root -p

8、初始化集群

tiup cluster start qzn --init #记录下生成的密码The new password is: *******.

9、部署完成,查看集群信息如下,数据库里无业务数据

二、TIDB原始集群增加pump节点

1、查看原集群信息如下

2、编辑扩展文件,/data/pump-qzn.yaml是需要扩展的配置文件,pump生成二进制文件,drainer 保存binlog到file,具体内容如下:

global: user: "tsp-tidb" ssh_port: 22 deploy_dir: "/tidb-deploy" data_dir: "/tidb-data" pump_servers: - host: 192.168.195.140 port: 8250 deploy_dir: "/tidb-deploy/pump-8250" data_dir: "/tidb-data/pump-8250" # The following configs are used to overwrite the `server_configs.pump` values. config: gc: 7 drainer_servers: - host: 192.168.195.140 port: 8249 deploy_dir: "/tidb-deploy/drainer-8249" data_dir: "/tidb-data/drainer-8249" # If drainer doesnt have a checkpoint, use initial commitTS as the initial checkpoint. # Will get a latest timestamp from pd if commit_ts is set to -1 (the default value). commit_ts: -1 # The following configs are used to overwrite the `server_configs.drainer` values. config: syncer.db-type: "file"

3、扩展集群

tiup cluster scale-out 集群名 /data/pump-qzn.yaml --user root -p

4、增加pump节点后,查看集群状态

tiup cluster display 集群名 ,看到各节点为Up

5、开启TIDB的binglog配置

vi /tidb-deploy/tidb-4000/conf/tidb.toml 加入下面内容 [binlog] enable = true ignore-error = true 然后重启tidb tiup cluster restart qzn -N 192.168.195.140:4000 在mysql客户端中查看是否开启(显示为ON) show variables like "log_bin";

6、登录源数据库创建数据库qzn_test和表info,并向表中插入一行数据

三、Tidb原始集群备份数据(这里仅展示备份单个数据库,请参考官方文档进行br备份和恢复) 下载BR备份工具,备份文件夹需要777权限,下载页面https://cn.pingcap.com/product-community/

mkdir -p /data/qzn/qzn_test chmod -R 777 /data/qzn/qzn_test wget https://download.pingcap.org/tidb-community-toolkit-v6.1.1-linux-amd64.tar.gz tar -zxvf tidb-community-toolkit-v6.1.1-linux-amd64.tar.gz -C /data/ cd /data/tidb-community-toolkit-v6.1.1-linux-amd64 tar -zxvf br-v6.1.1-linux-amd64.tar.gz -C /data/ cd /data/ ./br backup db -s local:///data/qzn/qzn_test --pd "192.168.195.140:2379" --db qzn_test --ratelimit 120 --log-file backupqzn_test.log

四、Tidb目标库恢复数据 br恢复备份(把备份文件拷贝到目标数据库服务器)

139服务器上部署br工具

#140上发送文件到139 scp br root@192.168.195.139:/data/ scp -r qzn_test/ root@192.168.195.139:/data/qzn/ #在139服务器上操作 ./br restore db -s local:///data/qzn/qzn_test --db qzn_test --pd "192.168.195.139:2379" --log-file restore.log

五、查看目标数据库(139),已经完成数据恢复

六、查看数据库服务器140,binlog文件已生成,此文件为增量备份文件,在实际备份过程中采取每日一次Br备份+增量备份的方式实现数据库的备份。

以上完成了数据库备份和恢复的基本操作,请注意,如果生产集群是多个tikv节点,在备份的时候需要通过挂在共享磁盘,让所有tikv的备份数据写入到共享磁盘中。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:幸福城市平台:数据库选型与优化实践
下一篇:专访中欧财富伍春兰:财富管理行业数字化转型升级,数据库如何选型?
相关文章