黄东旭解析 TiDB 的核心优势
459
2024-02-27
背景:由于公司要求必须保证数据库的数据安全,我们生产环境的数据库采取全量备份+增量备份+实时同步从库的方式保证数据库的高可用,本文介绍我公司生产环境的数据库备份方式。
注意:我们使用实时同步数据到从库的方式保障高可用(使用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 |sh2、设置环境变量
source .bash_profile3、安装组件
tiup cluster4、编写集群配置文件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.1395、检查风险
tiup cluster check ./topology.yaml --user root -p6、修复风险
tiup cluster check ./topology.yaml --apply --user root -p7、部署集群
tiup cluster deploy qzn v6.1.1 ./topology.yaml --user root -p8、初始化集群
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 -p4、增加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小时内删除侵权内容。