温馨提示×

Ubuntu MongoDB数据备份与恢复技巧

小樊
55
2025-09-15 00:21:52
栏目: 云计算

备份技巧

  1. 全量备份
    使用 mongodump 备份整个数据库或指定集合,支持增量备份(通过 --oplog--since 参数)。
    示例

    mongodump --host localhost --port 27017 --db mydb --out /backups/mongodb/full_$(date +%Y%m%d) 
  2. 增量备份
    基于全量备份,通过 --oplog 参数备份自上次备份以来的变更。
    示例

    mongodump --host localhost --port 27017 --oplog --out /backups/mongodb/incremental_$(date +%Y%m%d) 
  3. 自动化备份
    通过 cron 定时任务执行备份脚本,结合压缩和保留策略(如保留7天每日备份、4周每周备份)。
    示例脚本

    #!/bin/bash BACKUP_DIR="/backups/mongodb" DATE=$(date +%Y%m%d) mongodump --host localhost --port 27017 --out $BACKUP_DIR/$DATE tar -czvf $BACKUP_DIR/mongodb_$DATE.tar.gz $BACKUP_DIR/$DATE find $BACKUP_DIR -name "mongodb_*.tar.gz" -mtime +7 -exec rm {} \; 
  4. 异地与加密备份
    将备份文件存储至远程服务器或云存储,敏感数据可加密(如使用 gpg)。

恢复技巧

  1. 全量恢复
    停止 MongoDB 服务,删除原有数据(可选),用 mongorestore 恢复备份。
    示例

    sudo systemctl stop mongod mongorestore --db mydb /backups/mongodb/full_20250915 sudo systemctl start mongod 
  2. 增量恢复
    按时间顺序依次恢复全量备份和增量备份,需确保 oplog 已启用。
    示例

    mongorestore --oplogReplay --db mydb /backups/mongodb/incremental_20250915 
  3. 验证恢复
    通过 mongo shell 连接数据库,检查数据完整性和一致性。
    示例

    mongo use mydb db.collection.find() 

注意事项

  • 恢复前务必停止写操作,避免数据冲突。
  • 定期测试备份有效性,模拟恢复流程。
  • 敏感数据需加密存储,异地备份提升可靠性。

0