mongodb生產備份工具PBM

如果你的 MongoDB 數據量特別大(例如幾十 GB、TB 級別),普通的 mongodump/mongorestore 會顯得緩慢且資源消耗大,不適合生產級別大數據集。下面是當前 MongoDB 社區和企業廣泛使用的幾種備份方案對比和推薦:

工具是否官方適合場景優點缺點
mongodump / mongorestore? 是官方小數據量、開發測試、結構遷移簡單易用,文檔豐富速度慢、資源占用高、大數據不適合
mongodb-consistent-backup? 官方(老工具)副本集或分片集的大數據備份支持一致性快照,適合副本集停止維護(可替代用 mongodump + oplog)
Percona Backup for MongoDB?? 第三方(Percona 出品)🚀 TB級數據備份利器支持并發、壓縮、分片、增量備份初始學習成本略高
mongodump --oplog + rsync/snapshot? + 通用半熱備份,有一定容錯靈活組合方式維護復雜
文件系統快照 + Oplog?(系統級)企業環境,需高 IO 磁盤/文件系統支持幾乎不影響業務,速度最快需要快照技術支持,如 LVM、ZFS

公司的數據量達到了2T以上,這里只能使用PBM進行備份

https://www.percona.com/downloads
選擇對應的版本即可,如果是4.0建議選擇2.0.x版本
在這里插入圖片描述
所有節點使用yum安裝好了以后,編寫一個啟動服務/etc/systemd/system/pbm-agent.service

[Unit]
Description=Percona Backup for MongoDB Agent
Wants=network.target
After=network.target mongod.service[Service]
Type=simple
# 推薦使用有權限訪問MongoDB的用戶,且該用戶對備份目錄有讀寫權限
# 如果 mongod 以 'mongod' 用戶運行,這里也用 'mongod'
User=mongod # 核心命令:指定 pbm-agent 的路徑和 MongoDB 連接 URI
# 這個 URI 必須能讓 agent 連接到整個副本集
ExecStart=/usr/local/bin/pbm-agent --mongodb-uri="mongodb://user:passwd@localhost:27017/?replicaSet=rs0"  # 2.0.x以上可以寫集群地址Restart=always
RestartSec=5[Install]
WantedBy=multi-user.target

然后修改所有節點的pbm配置文件/etc/pbm-config.yaml

storage:type: filesystemfilesystem:path: /data/pbm_back # 備份目錄,所有節點都需要有# Point-in-Time Recovery配置,開啟pitr其實就沒有必要使用增量備份了,相當于開啟了自動持續增量備份
pitr:enabled: trueoplogSpanMin: 10  # oplog至少保留10天compression: gzip# 備份壓縮
backup:compression: gzipcompressionLevel: 6

完成執行如下命令,啟動服務,所有節點都需要

pbm config --file /etc/pbm-config.yamlsystemctl daemon-reload
# 啟動服務
systemctl start pbm-agent

在備份節點上執行備份命令進行第一次全備測試

pbm backup# 完成后執行,查看備份結果,如圖表示成功
pbm list

在這里插入圖片描述
接下來將命令加入crontab一周備份一次即可

[root@localhost pbm_all]# crontab -l
# mongo全量備份+PITR
0 0 * * 6 /usr/local/bin/pbm backup >> /data/pbm_all/logs/backup.log 2>&1

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

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

相關文章

【LeetCode#第167題】兩數之和Ⅱ

給你一個下標從 1 開始的整數數組 numbers &#xff0c;該數組已按 非遞減順序排列 &#xff0c;請你從數組中找出滿足相加之和等于目標數 target 的兩個數。如果設這兩個數分別是 numbers[index1] 和 numbers[index2] &#xff0c;則 1 < index1 < index2 < numbers…

Python(一)實現一個爬取微信小程序數據的爬蟲+工程化初步實踐

文章目錄 前言用Charles 抓包 iOS 微信小程序在Mac端和iOS端安裝Charles 自簽名證書Mac端iOS端 能抓到Safari瀏覽器的包但是抓不到微信小程序的包直接在iOS 上抓包的App如何抓取Android 7.0 以上/Harmony OS微信小程序包 Python 項目工程化pip 切換為國內鏡像源工程化參考腳手架…

uview ui request get / post 傳參含params和json數據的分析和使用

背景。單獨寫了controller方法去配合移動端的接口調用。但有的接口與pc端類似。于是進行了復用。但接口得復制不是。 uview js request 文檔 注意迪三個參數是header 后端接口GET方法 調用代碼截圖 瀏覽器調試 總結。 復制之前的api接口。為了方便復用底層實現。接口類型…

用 pnpm + TurboRepo,構建多項目高效開發體系

在現代前端項目日益復雜的今天&#xff0c;我們越來越多地面對一個場景&#xff1a;多個項目共享邏輯、組件和依賴&#xff0c;而維護和構建效率卻在不斷拉垮。這種情況下&#xff0c;傳統項目結構的痛點就顯現無遺。 從我親身實踐來看&#xff0c;選擇 pnpm TurboRepo 構建 …

Pytest 使用命令行參數執行指定環境的腳本—— Python 實踐

&#x1f9fe; 一、項目背景 在自動化測試中&#xff0c;我們經常需要根據不同的運行環境&#xff08;如測試環境和生產環境&#xff09;來執行測試腳本。本文將詳細介紹如何通過命令行參數來指定運行環境&#xff0c;并使用 Python 和 pytest 框架實現這一功能。 &#x1f6e…

利用可控驗證碼位數實現拒絕服務攻擊(DoS)風險與線程模型分析

一、背景介紹&#xff1a;驗證碼接口中的潛在 DoS 漏洞 在滲透測試過程中&#xff0c;常見驗證碼接口支持傳入“驗證碼位數”參數&#xff0c;表面看是業務可配置&#xff0c;實則若未做上限控制&#xff0c;極易成為資源消耗型 DoS 攻擊入口。 &#x1f9ea; 測試場景&#…

Spring Cloud Feign 整合 Sentinel 實現服務降級與熔斷保護

Spring Cloud Feign 整合 Sentinel 實現服務降級與熔斷保護 在微服務架構中&#xff0c;服務之間的調用往往依賴 Feign&#xff0c;而服務調用的穩定性又至關重要。本文將介紹如何將 Feign 與 Sentinel 結合使用&#xff0c;實現服務的容錯保護&#xff08;如降級與熔斷&#…

寵物醫院系統的設計與實現(springBoot版)

一、開題報告 一、本選題研究的意義和背景&#xff08;理論與現實意義&#xff09;&#xff1a; 背景&#xff1a;隨著人們生活水平的提高&#xff0c;寵物飼養愈發普遍&#xff0c;寵物醫院的需求也日益增長。掛號方式主要依賴現場掛號&#xff0c;導致寵物主人需要長時間排隊…

SOCKSv5 協議通信的完整階段與報文格式詳解

SOCKSv5 協議的通信通常分為以下幾個主要階段&#xff1a; 方法協商階段 (Method Negotiation)方法依賴的子協商階段 (Method-Dependent Sub-negotiation) - 本例為用戶名/密碼認證請求發送階段 (Request Sending)請求回復階段 (Request Reply)數據傳輸階段 (Data Transfer) …

??Git提交代碼Commit消息企業級規范

??Git Commit 類型完整指南?? 類型用途示例??feat??新增功能&#xff08;面向用戶的功能性變更&#xff09;git commit -m "feat: 添加用戶登錄功能"??fix??修復 Bug&#xff08;解決代碼中的問題&#xff09;git commit -m "fix: 修復首頁加載崩潰…

TiDB AUTO_RANDOM 超大主鍵前端精度丟失排查:JavaScript Number 限制與解決方案

前端長整型主鍵“失蹤”記 ——一次 ArrayIndexOutOfBoundsException 的排查全過程 一、事故現場 最近在維護 SMS-OFFICE 后臺系統時&#xff0c;運維同事反饋&#xff1a; 點擊「短信詳情」或「郵箱賬號詳情」時&#xff0c;偶爾彈窗空白、日志報錯&#xff1a; java.lang.A…

在postgresql使用mybatis動態創建數據庫分區表

在postgresql使用mybatis動態創建數據庫分區表 1. 整體描述2. 前期準備2.1 創建主表語句2.2 創建分表語句2.3 xxl-job 3. 代碼實現3.1 mapper.xml層3.2 mapper.java層3.3 service接口層3.4 service實現層3.5 controller層 4. 總結 1. 整體描述 在java下實現&#xff1a;創建分…

Python網安-zip文件暴力破解

目錄 源碼在這里 需要的模塊 準備一個密碼本和需要破解的ZIP文件 一行一行地從密碼文件中讀取每個密碼。 核心部分 注意&#xff0c;需要修改上段代碼注釋里的這段具有編碼問題的代碼&#xff1a; 源碼在這里 https://github.com/Wist-fully/Attack/tree/cracker 需要的…

聊聊Golang開發工程師

誕生背景 Go由Google三位頂尖工程師&#xff08;Ken Thompson、Rob Pike、Robert Griesemer&#xff09;設計&#xff0c;目標是解決兩大行業痛點&#xff1a; 硬件利用率不足&#xff1a;多核CPU普及&#xff0c;但C/C等語言難以高效利用并發能力&#xff1b; 開發效率低下&a…

機器學習6——線性分類函數

線性分類函數 分類問題的兩種決策方法&#xff1a; 概率方法&#xff1a;通過計算后驗概率進行分類。優點是在概率分布已知的情況下可以得到最優解&#xff0c;缺點是實際中概率密度通常未知&#xff0c;需要通過大量數據估計。判別方法&#xff1a;假設判別函數的形式已知&…

Sentinel(三):Sentinel熔斷降級

一、Sentinel熔斷概念介紹 官方文檔網址&#xff1a;circuit-breaking | Sentinel 1、Sentinel熔斷基本介紹 除了流量控制以外&#xff0c;對調用鏈路中不穩定的資源進行熔斷降級也是保障高可用的重要措 施之一。一個服務常常會調用別的模塊&#xff0c;可能是另外的一個遠程服…

PostgreSQL 主從集群搭建

下面是 PostgreSQL 主從復制&#xff08;Streaming Replication&#xff09;環境的安裝與配置指南&#xff0c;適合在兩臺或多臺服務器之間構建一主一從&#xff08;或一主多從&#xff09;的高可用讀寫分離系統。 環境準備 角色主機名/IP說明主庫192.168.1.10可讀寫&#xff…

STM32安全固件升級:使用自定義 bootloader 實現SD卡固件升級,包含固件加密

前言 在 STM32 嵌入式開發中&#xff0c;Bootloader 是一個不可或缺的模塊。ST 公司為 STM32 提供了功能完備的官方 Bootloader&#xff0c;支持多種通信接口&#xff08;如 USART、USB DFU、I2C、SPI 等&#xff09;&#xff0c;適用于標準的固件更新方案。 然而&#xff0c…

一步部署APache編譯安裝腳本

接下來我來介紹以下編譯安裝的好處 編譯安裝的優點與缺點 一、優點 高度可定制 可根據實際需求啟用或關閉特性&#xff08;如 Apache 的模塊、MySQL 的引擎等&#xff09;。 靈活控制編譯參數、優化性能&#xff08;如 --enable-xxx、--with-xxx&#xff09;。 更高的性能…

[Linux]mmap()函數內存映射原理及用法

一、內存映射 內存映射&#xff0c;簡而言之就是將用戶空間的一段內存區域映射到內核空間&#xff0c;映射成功后&#xff0c;用戶對這段內存區域的修改可以直接反映到內核空間&#xff0c;同樣&#xff0c;內核空間對這段區域的修改也直接反映用戶空間。那么對于內核空間和用…