/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)監控備份任務,設置失敗告警(如郵件、短信通知)。