什么是BRM
上一篇文章讲了openGauss的物理备份工具gs_probackup,今天来说说BRM备份工具。
BRM备份恢复工具全称为:Backup and Recovery Manager,是MogDB基于opengauss的备份工具 gs_probackup 做了一些封装和优化,面向MogDB数据库实现备份和恢复运维管理工作。
BRM工具的优势
(1)企业级管理能力
- 多实例统一管理
BRM 可集中管理多个数据库实例的备份策略(如 brm_test1, brm_test2),而 gs_probackup 需手动为每个实例单独配置。 - 可视化监控
部分 BRM 实现提供 Web 界面或可视化报表,而 gs_probackup 仅支持命令行。
(2)自动化与策略增强
- 智能备份保留策略
BRM 支持更灵活的保留规则(如 --retention-redundancy 和 --retention-window),而 gs_probackup 需手动编写脚本清理旧备份。 - 自动归档日志管理
BRM 的 --backup-pg-log 可能集成自动 WAL 归档和清理,避免 gs_probackup 需手动配置 archive_command。
(3)高级功能封装
- 一键恢复
BRM 可能封装复杂的恢复流程(如自动合并增量备份、PITR),而 gs_probackup 需手动指定时间点或备份链。 - 异构数据支持
部分 BRM 支持同时备份数据库+外部文件(如 --external-dirs),而 gs_probackup 仅限数据库文件。
(4)性能优化
- 并行备份/恢复
商业版 BRM 可能优化底层引擎(如并行压缩/传输),速度优于 gs_probackup 的默认配置。 - 增量备份增强
BRM 的 --backup-mode=PTRACK 可能对 OpenGauss 的页面跟踪技术有更深优化。
BRM的使用
安装
上传到/home/omm/software/brm/
unzip brm_1.0.4_linux_arm64.zip
su - omm
mkdir /home/omm/.brm
cp /home/omm/software/brm/conf/brm.yaml /home/omm/.brm/
1)修改配置文件
指定备份文件存放路径和日志存放路径,存放路径需具有omm用户创建目录权限。
cat brm.yaml
# 没有启用
backup_user: omm
# 备份文件存放目录
backup_home: /home/omm/brm
# 日志目录
log_file: /home/omm/log/brm/brm.log
# 日志级别
log_level: DEBUG
# 没有启用
lock_directory: /home/omm/log/run
# wal全局备份几次 default 1
wal_retention_redundancy: 1
# 是否允许主库进行备份. default:false
no_allow_primary_backup: false
network_limit_rate: 10m
# default on
enable_backup_wal_file_check: on
## 启动备份文件中心同步
#enable_backup_push: on
## 当前Brm节点名称,当enable_backup_center_push为on时此项为必填
#brm_node_name: 127.0.0.1:5434
## brm 备份文件集中存储配置
#backup_center:
# - host: 127.0.0.1
# port: 44332
# - host: 127.0.0.1
# port: 44333
2)工具验证
/home/omm/software/brm/brm version
time="2025-04-11 15:59:37.641886" level=info msg="Using config file:/home/omm/.brm/brm.yaml"
Release version: 0.0.12
Git Commit hash: 8bcf8b7
Git Tag : v0.0.12
Build timestamp: 2021-11-15T05:00:20ZZ
3)创建备份服务
[omm@node1 archivelog]$ /home/omm/software/brm/brm add-server -i brm_test -D /opt/mogdb/data/ -d postgres -p 26000 -U omm --retention-redundancy 2 --retention-window 5 --archive-dir '/opt/mogdb/archivelog'/home/omm/software/brm/brm add-server \-i brm_test \ # 实例名称-D /opt/mogdb/data/ \ # 数据库数据目录-d postgres \ # 默认连接数据库-p 26000 \ # 数据库端口-U omm \ # 数据库用户名--retention-redundancy 2 \ # 保留的备份冗余数--retention-window 5 \ # 保留的备份天数--archive-dir '/opt/mogdb/archivelog' # WAL归档日志目录
4)数据库全备
/home/omm/software/brm/brm backup -i brm_test -b FULL --backup-pg-log --delete-expired
/home/omm/software/brm/brm backup \-i brm_test \ # 指定备份实例名-b FULL \ # 备份类型:全量备份--backup-pg-log \ # 同时备份 PostgreSQL/MogDB 的 WAL 归档日志--delete-expired # 自动清理过期的备份
5)增量备份
/home/omm/software/brm/brm backup -i brm_test --backup-mode=PTRACK
查看备份实例
/home/omm/software/brm/brm show-backup -i brm_testbrm_test 9.2 SUJBTS 2025-04-11 11:46:42+08 PTRACK STREAM 1/1 5s 259MB 16MB 1.00 3/2B000028 3/2B0001E8 OK
brm_test 9.2 SUJB0H 2025-04-11 11:29:09+08 FULL STREAM 1/0 11s 662MB 16MB 1.00 3/25000028 3/250001E8 OK
6)全量恢复
/home/omm/software/brm/brm restore -i brm_test -b SUJBTS -D /opt/mogdb/data
7)指定恢复
如果要恢复到增量备份之前的时间点
/home/omm/software/brm/brm restore -i brm_test -b SUJB0H -D /opt/mogdb/data
基于时间点恢复
/home/omm/software/brm/brm restore -i brm_test -D /opt/mogdb/data --recovery-target-time='2025-04-10 12:11:00'
基于 xid 恢复
/home/omm/software/brm/brm restore -i brm_test -D /opt/mogdb/data --recovery-target-xid=89757 -j 4
基于 lsn 恢复
/home/omm/software/brm/brm restore -i brm_test -D /opt/mogdb/data --recovery-target-lsn='0/550005E5'