温馨提示×

Ubuntu MongoDB如何实现数据备份

小樊
33
2025-12-20 17:22:31
栏目: 云计算

Ubuntu 上 MongoDB 数据备份实操指南

一 常用备份方法概览

  • mongodump/mongorestore:导出为 BSON 的二进制备份,保留数据类型与索引,适合中小型数据库与迁移;支持按库/集合粒度操作。
  • 文件系统快照(LVM 等):对数据目录所在卷做快照,速度快、影响小,适合大型数据库;需底层文件系统/存储支持。
  • MongoDB Atlas 备份:云托管自动备份,支持时间点恢复(PITR),适合使用 Atlas 的场景。
  • Percona Backup for MongoDB(PBM):开源企业级方案,支持增量/全量S3 等存储,适合需要自动化与远程备份的团队。
  • oplog 增量:基于 oplog 的回放实现时间点恢复,常用于复制集环境。
    选择建议:中小规模优先用 mongodump;大规模与低影响优先 LVM 快照;云上用 Atlas 备份;需要增量与远程存储选 PBM

二 使用 mongodump 进行备份与恢复(Ubuntu 常用)

  • 安装工具(若未随 MongoDB 安装):sudo apt-get install mongodb-clients(或 mongodb-tools)。
  • 全量备份:mongodump --out /backup/mongodump_$(date +%F_%H-%M-%S)
  • 指定库/集合:mongodump --db mydb --collection mycol --out /backup/mydb_mycol
  • 压缩备份:mongodump --db mydb --gzip --out /backup/mydb_gzip
  • 恢复全量:mongorestore /backup/mongodump_2025-12-20_10-00-00
  • 恢复指定库/集合:mongorestore --db mydb /backup/mydb 或 mongorestore --db mydb --collection mycol /backup/mydb/mycol.bson
  • 按命名空间包含/排除:mongorestore --nsInclude mydb.* /backup/mydb;如需先清库再加 --drop
  • 提示:mongodump 生成的目录包含 .bson.metadata.json,恢复时索引会一并恢复。

三 自动化与保留策略(含压缩与清理)

  • 定时备份(cron,示例每日 02:00 全量):
    0 2 * * * /usr/bin/mongodump --gzip --out /backup/mongodump_$(date +%F)
    注意:cron 中 % 需转义为 %
  • 保留策略(示例保留最近 7 天):
    0 1 * * * find /backup -type d -mtime +7 -exec rm -rf {} ;
  • 压缩与归档:mongodump 加 –gzip;备份完成后可用 tar 归档并同步到远端存储。
  • 运行时段:在业务低峰执行,降低对线上写入影响。

四 大型库与高可用场景的备份方案

  • LVM 快照(示例):
    1)创建快照:lvcreate --size 1G --snapshot --name mdb-snap /dev/mapper/vg0-mongodb
    2)挂载快照:mount /dev/mapper/vg0-mdb-snap /mnt/mdb-snapshot
    3)拷贝数据:rsync -av /mnt/mdb-snapshot/ /backup/mongodb-snap/
    4)卸载并删除快照:umount /mnt/mdb-snapshot && lvremove /dev/mapper/vg0-mdb-snap
    要点:确保快照大小足够,备份完成尽快释放。
  • Percona Backup for MongoDB(PBM)
    1)安装 PBM 客户端;2)配置 pbm.yaml(如 S3 存储、凭证、前缀);3)执行备份:pbm backup;4)恢复:pbm restore
  • MongoDB Atlas 备份:在控制台配置备份策略与保留,需要时按时间点恢复。
  • oplog 增量/时间点恢复:在复制集环境启用 oplog,结合 mongodump/restore 的 –oplogReplay 可实现精确时点回放(操作较复杂,建议演练)。

五 备份验证与常见注意事项

  • 定期做恢复演练:抽样恢复库/集合,校验数据量与关键业务查询。
  • 权限与安全:备份用户需具备读取库/集合与 listCollections 等权限;备份文件加密存储并限制访问。
  • 监控与告警:对备份成功率、耗时、容量设监控与告警,及时发现失败。
  • 性能与影响:mongodump 会带来一定负载,尽量在从节点低峰执行;大型库优先 LVM 快照PBM
  • 一致性:对高写入场景,结合 复制集oplog 实现更细粒度的恢复能力。

0