物理備份工具 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_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'

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76522.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76522.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76522.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

問問lua怎么寫DeepSeek,,,,,

很坦白說,這十年,我幾乎沒辦法從互聯網找到這個這樣的代碼,互聯網引擎找不到,我也沒有很大的“追求”要傳承,或者要宣傳什么;直到DeepSeek的出現 兄弟,Deepseek現在已經比你更了解你樓下的超市…

react+Tesseract.js實現前端拍照獲取/選擇文件等文字識別OCR

需求背景 在開發過程中可能會存在用戶上傳一張圖片后下方需要自己識別出來文字數字等信息,有的時候會通過后端來識別后返回,但是也會存在純前端去識別的情況,這個時候就需要使用到Tesseract.js這個庫了 附Tesseract.js官方(htt…

藍橋杯考前復盤

明天就是考試了,適當的停下刷題的步伐。 靜靜回望、思考、總結一下,我走過的步伐。 考試不是結束,他只是檢測這一段時間學習成果的工具。 該繼續走的路,還是要繼續走的。 只是最近,我偶爾會感到迷惘,看…

前端-Vue3

1. Vue3簡介 2020年9月18日,Vue.js發布版3.0版本,代號:One Piece(n 經歷了:4800次提交、40個RFC、600次PR、300貢獻者 官方發版地址:Release v3.0.0 One Piece vuejs/core 截止2023年10月,最…

[ctfshow web入門] web39

信息收集 題目發生了微妙的變化,只過濾flag,include后固定跟上了.php。且沒有了echo $flag;,雖說本來就沒什么用 if(isset($_GET[c])){$c $_GET[c];if(!preg_match("/flag/i", $c)){include($c.".php");} }else{…

【動手學深度學習】LeNet:卷積神經網絡的開山之作

【動手學深度學習】LeNet:卷積神經網絡的開山之作 1,LeNet卷積神經網絡簡介2,Fashion-MNIST圖像分類數據集3,LeNet總體架構4,LeNet代碼實現4.1,定義LeNet模型4.2,定義模型評估函數4.3&#xff0…

代碼隨想錄第15天:(二叉樹)

一、二叉搜索樹的最小絕對差(Leetcode 530) 思路1 :中序遍歷將二叉樹轉化為有序數組,然后暴力求解。 class Solution:def __init__(self):# 初始化一個空的列表,用于保存樹的節點值self.vec []def traversal(self, r…

計算機操作系統-【死鎖】

文章目錄 一、什么是死鎖?死鎖產生的原因?死鎖產生的必要條件?互斥條件請求并保持不可剝奪環路等待 二、處理死鎖的基本方法死鎖的預防摒棄請求和保持條件摒棄不可剝奪條件摒棄環路等待條件 死鎖的避免銀行家算法案例 提示:以下是…

vue拓撲圖組件

vue拓撲圖組件 介紹技術棧功能特性快速開始安裝依賴開發調試構建部署 使用示例演示截圖組件源碼 介紹 一個基于 Vue3 的拓撲圖組件,具有以下特點: 1.基于 vue-flow 實現,提供流暢的拓撲圖展示體驗 2.支持傳入 JSON 對象自動生成拓撲結構 3.自…

go 通過匯編分析函數傳參與返回值機制

文章目錄 概要一、前置知識二、匯編分析2.1、示例2.2、匯編2.2.1、 寄存器傳值的匯編2.2.2、 棧內存傳值的匯編 三、拓展3.1 了解go中的Duff’s Device3.2 go tool compile3.2 call 0x46dc70 & call 0x46dfda 概要 在上一篇文章中,我們研究了go函數調用時的棧布…

python-1. 找單獨的數

問題描述 在一個班級中,每位同學都拿到了一張卡片,上面有一個整數。有趣的是,除了一個數字之外,所有的數字都恰好出現了兩次。現在需要你幫助班長小C快速找到那個拿了獨特數字卡片的同學手上的數字是什么。 要求: 設…

算法學習C++需注意的基本知識

文章目錄 01_算法中C需注意的基本知識cmath頭文件一些計算符ASCII碼表數據類型長度運算符cout固定輸出格式浮點數的比較max排序自定義類型字符的大小寫轉換與判斷判斷字符是數字還是字母 02_數據結構需要注意的內容1.stringgetline函數的使用string::findsubstr截取字符串strin…

從零開始寫android 的智能指針

Android中定義了兩種智能指針類型,一種是強指針sp(strong pointer),源碼中的位置在system/core/include/utils/StrongPointer.h。另外一種是弱指針(weak pointer)。其實稱之為強引用和弱引用更合適一些。強…

【leetcode hot 100 152】乘積最大子數組

錯誤解法:db[i]表示以i結尾的最大的非空連續,動態規劃:dp[i] Math.max(nums[i], nums[i] * dp[i - 1]); class Solution {public int maxProduct(int[] nums) {int n nums.length;int[] dp new int[n]; // db[i]表示以i結尾的最大的非空連…

圖論整理復習

回溯: 模板: void backtracking(參數) {if (終止條件) {存放結果;return;}for (選擇:本層集合中元素(樹中節點孩子的數量就是集合的大小)) {處理節點;backtracking(路徑,選擇列表); // 遞歸回溯&#xff…

uniapp離線打包提示未添加videoplayer模塊

uniapp中使用到video標簽,但是離線打包放到安卓工程中,運行到真機中時提示如下: 解決方案: 1、把media-release.aar、weex_videoplayer-release.aar放到工程的libs目錄下; 文檔:https://nativesupport.dcloud.net.cn/…

打包構建替換App名稱

方案適用背景 一套代碼出多個安裝包,且安裝包的應用名稱、圖標都不一樣考慮三語名稱問題 通過 Gradle 腳本實現 gradle.properties 里面定義標識來區分應用,如下文里的 APP_TYPEAAA 、APP_TYPEBBB// 定義 groovy 替換方法 def replaceAppName(String …

DrissionPage移動端自動化:從H5到原生App的跨界測試

一、移動端自動化測試的挑戰與機遇 移動端測試面臨多維度挑戰: 設備碎片化:Android/iOS版本、屏幕分辨率差異 混合應用架構:H5頁面與原生組件的深度耦合 交互復雜性:多點觸控、手勢操作、傳感器模擬 性能監控:內存…

達夢數據庫用函數實現身份證合法校驗

達夢數據庫用函數實現身份證合法校驗 拿走不謝~ CREATE OR REPLACE FUNCTION CHECK_IDCARD(A_SFZ IN VARCHAR2) RETURN VARCHAR2 IS TYPE WEIGHT_TAB IS VARRAY(17) OF NUMBER; TYPE CHECK_TAB IS VARRAY(11) OF CHAR; WEIGHT_FACTOR WEIGHT_TAB : WEIGHT_TAB(7,9,10,5,8,4,…

3dmax的python通過普通的攝像頭動捕表情

1、安裝python 進入cdm,打python要能顯示版本號 >>>(進入python提示符模式) import sys sys.path顯示python的安裝路徑, 進入到python.exe的路徑 在python目錄中安裝(ctrlz退出python交互模式) 2、pip install mediapipe…