当前位置: 首页 > news >正文

物理备份工具 BRM vs gs_probackup

什么是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_test

brm_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'

相关文章:

  • AndroidTV D贝桌面-v3.2.5-[支持文件传输]
  • “破解”GPT-4o生图技术:万物皆可吉卜力的技术路线推测
  • w285药店管理系统的设计与实现
  • 腾讯OCR文字识别实践--简历文本识别
  • Redis简介及其在Unity中的应用
  • Azure AI Foundry 正在构建一个技术无障碍的未来世界
  • 金融简单介绍及金融诈骗防范
  • 大白话聊MySQL覆盖索引
  • 第五届大数据、人工智能与风险管理国际学术会议 (ICBAR 2025)
  • 高质量双工自然对话数据,助力大模型口语能力进化
  • Linux用Wireshark进行Thread网络抓包关键步骤
  • 在ASP.NET Core 中实现幂等API和WinForms客户端防重提交实践
  • 使用UFW+IPSET禁用海外IP配置持久化操作
  • @SchedulerLock 防止分布式环境下定时任务并发执行
  • 深度学习:AI 大模型时代的智能引擎
  • linux shell编程之条件语句(二)
  • 小试牛刀-抽奖程序
  • Git 查看提交历史
  • 多链协议和跨链桥
  • 如果单表数据量大,只能考虑分库分表吗
  • 企业网站的建设包括哪些/seo资讯
  • 东莞网站推广外包/西安关键词推广
  • 中国互联网协会官网/宁波seo营销平台
  • wordpress还原回收站/怎么建免费网站
  • 查重网站开发/朋友圈软文范例
  • 企业网站建设的基本内容/seo引擎优化方案