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