分布式数据库备份实践

在分布式备份中可以采取两种方式进行备份,一种是采用手动编写backup.yml文件进行备份,另外一种是吧备份过程交给备份工具自动执行。如果需要个性化进行备份,建议采用手动编写备份文件方式进行备份。

以下是针对两种备份方式的实践:
集群状态

备份方案一

通过手动调整分布式节点archiv_command参数,并编写backup.yml文件进行编写

复制代码
ha_ctl set gtm gtm1 -p archive_command="'scp %p 10.xx.xx.199:/backup/gtm_wal/%f'" -c panwei -l http://10.xx.xx.199:2379
ha_ctl set datanode dn1_1 -p archive_command="'scp %p 10.xx.xx.199:/backup/dn1_wal/%f'" -c panwei -l http://10.xx.xx.199:2379
ha_ctl set datanode dn1_2 -p archive_command="'scp %p 10.xx.xx.199:/backup/dn1_wal/%f'" -c panwei -l http://10.xx.xx.199:2379
## CN节点可以不做归档设置,并且不需要进行备份
## 同时建议同一分片的不同副本,如:dn1_1、dn1_2、dn1_3等副本设置归档路径为同一主机同一路径下,即使数据库发生主备切换,仍然方便收集归档日志文件。
复制代码
vi /software/backup.yml
gtm:
    backup_host: 10.xx.xx.199
    backup_dir: /software/gtm
    tbs_dir: /software/gtm_tbs
datanode:
  - dn1:
      backup_host: 10.xx.xx.199
      backup_dir: /software/dn1
      tbs_dir: /software/dn1_tbs

通过备份命令

复制代码
## 进行全量备份
ha_ctl backup all -p /software -c panwei -U test -W 'xxxxxx' -l http://10.xx.xx.199:2379
复制代码
## 进行增量备份
ha_ctl backup all -a '-b PTRACK' -p /software -c panwei -U test -W 'xxxxxx' -l http://10.xx.xx.199:2379
复制代码
## 查看备份集
ha_ctl backup show -p /software -l http://10.xx.xx.199:2379
复制代码
## 校验备份集
ha_ctl backup validate -p /software -l http://10.xx.xx.199:2379

备份方案二

通过填写备份文件模板进行备份。

复制代码
vi /software/backup_new.yml
backup_host: 192.168.174.170 #or local
backup_dir: /software

备份命令

复制代码
## 进行全量备份
ha_ctl backup all -p /software -c panwei -U test -W 'xxxxxx' -l http://10.xx.xx.199:2379

同时在通过填写备份文件模板自动备份时,我们可以发现,备份工具对我们数据库参数进行自动设置,对比备份前后的gtm以及dn节点的archive_command参数值,备份工具自动进行调整为备份路径,从而设置归档路径。

复制代码
## 进行增量备份
ha_ctl backup all -a '-b PTRACK' -p /software -c panwei -U test -W 'xxxxxx' -l http://10.xx.xx.199:2379
复制代码
## 查看备份集
ha_ctl backup show -p /software -l http://10.xx.xx.199:2379
复制代码
## 校验备份集
ha_ctl backup validate -p /backup_new -l http://10.xx.xx.199:2379
相关推荐
Nebula_g3 分钟前
云禾外卖补充—项目整体后端运行逻辑-对流程的更深层次理解
java·开发语言·网络·数据库·状态模式·javase
太理摆烂哥7 分钟前
MySQL数据类型
数据库·mysql
程序员小孔.12 分钟前
基于 SpringBoot + UniApp + Vue 的家政服务系统设计与实现
前端·数据库·spring boot·python·docker·微信小程序
草莓熊Lotso4 小时前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd
Lethehong9 小时前
Oracle 加个字段,目标库就报错?KFS 用“先拆后组“打通异构 DDL
数据库·oracle
Web极客码10 小时前
锁定真正的磁盘卡顿:我用 OpenCode 配合 eBPF 诊断 NVMe 队列深度延迟与 I/O 写放大
数据库·oracle
lisanmengmeng10 小时前
Ganglia分布式集群监控系统安装手册
分布式
cspttty10 小时前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库
roman_日积跬步-终至千里11 小时前
【数据Agent论文·查询与语义|05】Spider:为什么换一个数据库,模型就不会查了?
数据库·数据分析
猫咪很可爱12 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle