当前位置: 首页 > 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

相关文章:

  • centos网卡绑定参考
  • RediSearch高性能全文搜索引擎
  • 报道称CoreWeave洽谈收购Core Scientific,后者涨超30%
  • AI优化SEO关键词精进
  • 开源模型应用落地-让AI更懂你的每一次交互-用LangChain、Streamlit与Redis构建AI模型的“不忘”人生(三)
  • Flutter 网络请求指南, 从 iOS 到 Flutter 的 Dio + Retrofit 组合
  • Excel透视表数据源自动更新
  • 在docker容器中安装docker服务,基于fuse-overlayfs进行overlay挂载,而不是vfs
  • 【数据挖掘】关联规则算法学习—Apriori
  • 华为云Flexus+DeepSeek征文|基于Dify构建故事绘本制作工作流
  • 分布式ID生成SnowflakeId雪花算法和百度UidGenerator工具类
  • 鸿蒙版FlutterSDK3.27.4可以使用了
  • [论文阅读] 人工智能 | 真实场景下 RAG 系统的工程实践指南
  • 数据结构之顺序表(C语言版本)
  • PHP在做爬虫时的解决方案
  • 跨芯片 AI 算子库 FlagGems 正式加入PyTorch 基金会生态项目体系
  • idea的EasyCode插件连接瀚高数据库(APP)
  • 基于Anaconda环境开发IntelliJ IDEA实用JSON转Java实体插件
  • ASM1042在矿山设备通信中的抗干扰性能优化研究
  • JavaEE-Spring事务和事务的传播机制