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

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.xdnf.cn/news/1071811.html

相关文章:

  • 学习设计模式《十五》——模板方法模式
  • SpringBoot 防刷 重复提交问题 重复点击问题 注解 RequestParam RequestBody
  • clion与keil分别配置项目宏定义
  • Python打卡:Day39
  • MySQL 连接指定端口后,为什么实际仍是 3306?
  • 什么是故障注入测试
  • 智能助手(利用GPT搭建智能系统)
  • 性能测试常见指标与瓶颈分析方法
  • 利用python实现NBA数据可视化
  • Python Selenium 滚动到特定元素
  • 10【认识文件系统】
  • 视觉疲劳检测如何优化智能驾驶的险情管理
  • 【RAG面试题】LLMs已经具备了较强能力,存在哪些不足点?
  • 【k近邻】 K-Nearest Neighbors算法原理及流程
  • 《高等数学》(同济大学·第7版)第九章 多元函数微分法及其应用第五节多元函数微分学的几何应用
  • 桌面小屏幕实战课程:DesktopScreen 13 HTTP SERVER
  • [Python]-基础篇1- 从零开始的Python入门指南
  • Python打卡:Day38
  • .NetCore+Vue快速生产框架开发详细方案
  • 深入解析RNN模型:应用、结构与构建实战
  • C++ 第三阶段 并发与异步 - 第二节:异步任务(std::async)
  • 深度拆解Deep Research系统架构与路线图
  • MySQL在C中常用的API接口
  • Linux信号机制:从入门到精通
  • Java项目:基于SSM框架实现的宠物综合服务平台管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告】
  • 【记录】Ubuntu|Ubuntu服务器挂载新的硬盘的流程(开机自动挂载)
  • 动手学Python:从零开始构建一个“文字冒险游戏”
  • 2025.6.27总结
  • react-sequence-diagram时序图组件
  • 消息队列的网络模型详解:IO多路复用、Reactor模型、零拷贝