MongoDB在Ubuntu上的备份恢复
导读:在 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
- #!/bin/bash
- 传输与异地保存: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
