/data/db)有读取权限,或使用mongodump工具(无需直接访问数据目录)。mongodump和mongorestore是MongoDB自带工具,安装MongoDB后默认可用(若未安装,可通过yum install mongodb-org-tools或apt install mongodb-org-tools安装)。mongodump执行备份mongodump是MongoDB推荐的逻辑备份工具,支持全量、增量(需结合oplog)及特定数据库/集合的备份。
mongodump --out /path/to/backup/directory
示例(带时间戳的目录命名,便于管理):mongodump --out /backups/mongodb_$(date +%Y%m%d_%H%M%S)
mongodump --db your_database_name --out /path/to/backup/directory
mongodump --db your_database_name --collection your_collection_name --out /path/to/backup/directory
mongodump -u your_username -p your_password --authenticationDatabase admin --out /path/to/backup/directory
--oplog参数,备份全量数据及备份期间的操作日志,可实现时间点恢复:mongodump --oplog --out /path/to/incremental_backup
注:增量备份需在副本集的从节点执行,避免影响主节点性能。
备份文件可能较大,使用tar压缩可节省存储空间:
tar -czvf mongodb_backup_$(date +%Y%m%d).tar.gz /path/to/backup/directory
/backups),避免本地灾难导致备份丢失。cron定时执行备份,例如每天凌晨2点执行全量备份:crontab -e
添加以下内容:0 2 * * * /usr/bin/mongodump --out /backups/mongodb_$(date +\%Y\%m\%d) --gzip
保存后,cron会自动执行备份任务。sudo systemctl stop mongod
/var/lib/mongodb)或指定恢复目录。mongorestore执行恢复mongorestore是MongoDB的逻辑恢复工具,支持全量、特定数据库/集合的恢复。
mongorestore /path/to/backup/directory
mongorestore --db your_database_name /path/to/backup/directory/your_database_name
mongorestore --db your_database_name --collection your_collection_name /path/to/backup/directory/your_database_name/your_collection_name.bson
mongorestore -u your_username -p your_password --authenticationDatabase admin /path/to/backup/directory
--drop参数(会清空目标数据库/集合中的所有数据):mongorestore --drop --db your_database_name /path/to/backup/directory
--oplog,恢复时需添加--oplogReplay参数,实现备份时间点之后的操作恢复:mongorestore --oplogReplay /path/to/incremental_backup
注:增量恢复需确保备份文件包含完整的oplog日志。
sudo systemctl start mongod
mongo --username your_username --password your_password --authenticationDatabase admin
show databases; // 查看数据库是否存在
use your_database_name;
show collections; // 查看集合是否存在
db.your_collection_name.find().pretty(); // 查看集合数据
gpg),防止数据泄露。cron日志或监控工具(如Prometheus)监控备份任务,设置失败告警(如邮件、短信通知)。