当前位置: 首页 > 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.lqws.cn/news/549289.html

相关文章:

  • opensuse安装rabbitmq
  • Transformer
  • 将ONNX模型转换为(OPENMV可用的格式)TensorFlow Lite格式
  • Spring Cloud 微服务(服务注册与发现原理深度解析)
  • python基于Django+mysql实现的图书管理系统【完整源码+数据库】
  • uv包管理常用命令
  • Stable Diffusion 3终极提示词库:2000个工业设计场景生成公式(2025企业级实战指南)
  • [Ethernet in CANoe]1--SOME/IP arxml文件格式的区别
  • 动手学Python:从零开始构建一个“文字冒险游戏”
  • 记忆化搜索(dfs+memo)无环有向图
  • ubuntu22上安装redis6
  • 【开发杂谈】Auto Caption:使用 Electron 和 Python 开发实时字幕显示软件
  • JAX study notes[7]
  • uniapp消息推送
  • Springboot中常用的注解(分层整理)
  • Redis主从复制原理
  • CI/CD的常规设置及核心原理
  • 【大数据】大数据产品基础篇
  • OpenCV图像添加水印
  • Java底层原理:深入理解JVM类加载机制与反射机制
  • nginx:配置反向代理后不生效
  • 智能实验室革命:Deepoc大模型驱动全自动化科研新生态
  • could not import google.golang.org/protobuf/proto
  • 前沿融合:机器学习如何重塑智能水泥基复合材料研发范式
  • 学习设计模式《十五》——模板方法模式
  • 多张图片生成PDF每张图片生成pdf的一页
  • Windows Server 2019 查询远程登录源 IP 地址(含 RDP 和网络登录)
  • 论云原生架构及应用
  • AcWing--数据结构(二)
  • clion配置旧的C项目为CMake项目工程