首页主机资讯MongoDB在Ubuntu上的备份恢复

MongoDB在Ubuntu上的备份恢复

时间2025-11-19 11:45:03发布访客分类主机资讯浏览840
导读:在 Ubuntu 上使用 mongodump mongorestore 进行备份与恢复 一 环境准备与工具安装 确认 MongoDB 服务处于可用状态:sudo systemctl start mongod && sudo...

在 Ubuntu 上使用 mongodump mongorestore 进行备份与恢复

一 环境准备与工具安装

  • 确认 MongoDB 服务处于可用状态:sudo systemctl start mongod & & sudo systemctl enable mongod。备份工具通常随 MongoDB 一起提供,或在部分发行版中通过包管理器安装(如 sudo apt install mongodb-tools)。如使用较新版本,请确保已安装包含 mongodump/mongorestore 的 MongoDB Database Tools

二 逻辑备份与恢复常用命令

  • 全量备份到目录:mongodump --out /backup/$(date +%Y%m%d%H%M%S)
  • 备份指定数据库:mongodump --db your_db --out /backup/your_db_$(date +%F)
  • 备份指定集合:mongodump --db your_db --collection your_coll --out /backup/your_db
  • 压缩备份目录:tar -czvf your_backup_$(date +%F).tar.gz -C /backup/your_backup_dir .
  • 恢复整个备份目录:mongorestore /backup/your_backup_dir
  • 恢复到指定数据库:mongorestore --db your_db /backup/your_backup_dir/your_db
  • 恢复指定集合:mongorestore --db your_db --collection your_coll /backup/your_db/your_coll.bson
  • 覆盖式恢复(先删后插):mongorestore --drop --db your_db /backup/your_db
  • 远程主机与鉴权示例:mongodump -h 192.0.2.10 -u admin -p --authenticationDatabase admin --out /backup/remote_$(date +%F);恢复时对应使用 -h/-u/-p 与 --authenticationDatabase。

三 认证与权限要点

  • 具备备份读取权限的账号即可执行 mongodump;执行 mongorestore 通常需要对目标库有读写权限。示例(在 mongo shell 中创建高权限用户,仅在安全环境下使用):use admin; db.createUser({ user:“root”, pwd:“StrongPass!”, roles:[{ role:“root”, db:“admin”} ]} ); 备份/恢复时通过 --authenticationDatabase admin 指定认证库。

四 自动化与压缩归档

  • 定时全量备份脚本示例(每天 02:00 执行):
    • 编辑任务:sudo crontab -e
    • 任务内容:0 2 * * * /usr/local/bin/mongo_backup.sh
    • 脚本示例(/usr/local/bin/mongo_backup.sh):
      • #!/bin/bash
        • BACKUP_DIR=“/backup/mongo_$(date +%F_%H-%M-%S)”
        • mkdir -p “$BACKUP_DIR”
        • mongodump --out “$BACKUP_DIR”
        • tar -czvf “$BACKUP_DIR.tar.gz” -C “$BACKUP_DIR” .
        • 可选:删除超过 7 天的备份

        • find /backup -maxdepth 1 -type d -mtime +7 -name “mongo_*” -exec rm -rf { } ;
        • find /backup -maxdepth 1 -type f -mtime +7 -name “mongo_*.tar.gz” -delete
      • 赋权:chmod +x /usr/local/bin/mongo_backup.sh
  • 传输与异地保存:scp -r /backup/mongo_2025-11-19_02-00-00 user@backup-server:/data/backups。

五 进阶与注意事项

  • 时间点恢复思路:在 副本集 环境可结合 oplog 实现更细粒度恢复。做法通常为先做一次全量备份,再在恢复时通过包含 oplog 的备份目录执行 mongorestore --oplogReplay(需确保备份时捕获了 oplog)。单实例或无 oplog 的场景不支持该方式。
  • 物理备份与恢复:在停机维护窗口内可停止 mongod 后直接拷贝数据目录(如 /var/lib/mongodb)到备份位置,恢复时反向拷贝并启动服务。此方式依赖存储一致性与版本匹配,操作前务必做好完整备份与验证。
  • 常见问题排查:如遇到 “Unit mongod.service not found” 或服务无法启动,先检查 MongoDB 是否安装正确、配置文件与数据目录权限,并通过 sudo systemctl status mongod 与查看 /var/log/mongodb/mongod.log 定位问题。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: MongoDB在Ubuntu上的备份恢复
本文地址: https://pptw.com/jishu/751012.html
如何用Linux Syslog进行日志审计 如何解决Ubuntu MongoDB连接失败

游客 回复需填写必要信息