在Ubuntu上配置MongoDB備份策略主要包括以下幾種方法:
mongodump
是MongoDB的內置備份工具,用于創建數據庫的備份。它可以備份整個數據庫或特定的集合,并且支持增量備份。
全量備份命令示例:
mongodump --host localhost --port 27017 --out /backups/mongodb/full_$(date +%Y%m%d)
增量備份命令示例:
mongodump --host localhost --port 27017 --since "2023-01-01T00:00:00Z" --out /backups/mongodb/incremental
mongorestore
是與 mongodump
對應的恢復工具,用于從備份文件恢復數據庫。它可以用于全量恢復或增量恢復。
全量恢復命令示例:
mongorestore /backups/mongodb/full_20230101
增量恢復命令示例:
mongorestore --oplogReplay --oplogLimit "2023-01-01T00:00:00Z" /backups/mongodb/incremental
mongorestore --dryRun
命令進行模擬恢復測試。可以編寫自動化腳本來定期執行備份任務,例如使用 cron
定時任務。
示例腳本:
#!/bin/bash
BACKUP_DIR="/backups/mongodb"
DATE=$(date +%Y%m%d)
HOST="localhost"
PORT="27017"
DB_NAME="your_database"
USER="admin"
PASSWORD="your_password"
# 創建備份目錄
mkdir -p $BACKUP_DIR/$DATE
# 執行備份
mongodump --host $HOST --port $PORT --username $USER --password $PASSWORD --db $DB_NAME --out $BACKUP_DIR/$DATE
# 壓縮備份
tar -zcvf $BACKUP_DIR/mongodb_backup_$DATE.tar.gz $BACKUP_DIR/$DATE
# 刪除未壓縮的備份
rm -rf $BACKUP_DIR/$DATE
# 保留最近7天備份
find $BACKUP_DIR -name "mongodb_backup_*.tar.gz" -mtime +7 -exec rm {} \;
# 記錄日志
echo "$(date) - MongoDB備份完成" >> /var/log/mongodb_backup.log
通過上述方法,您可以在Ubuntu下有效地備份和恢復MongoDB數據,確保數據的安全性和可恢復性。