ubuntu

Ubuntu MongoDB备份与恢复配置

小樊
47
2025-08-19 22:08:27
栏目: 云计算

一、备份配置

  1. 安装工具
    确保已安装mongodb-org-tools(含mongodumpmongorestore):

    sudo apt update && sudo apt install -y mongodb-org-tools
    
  2. 全量备份

    • 备份整个数据库到指定目录:
      mongodump --host localhost --port 27017 --out /path/to/backup/full_$(date +%Y%m%d)
      
    • 压缩备份文件(节省空间):
      tar -czvf /path/to/backup/full_$(date +%Y%m%d).tar.gz /path/to/backup/full_$(date +%Y%m%d)
      
  3. 增量备份
    基于oplog备份自上次全量备份后的变更(需启用副本集):

    mongodump --host localhost --port 27017 --since "2025-01-01T00:00:00Z" --out /path/to/backup/incremental
    
  4. 自动化备份(Cron脚本)
    创建定时任务,例如每日凌晨2点备份:

    # 编辑crontab
    crontab -e
    # 添加以下内容(需替换为实际路径和用户)
    0 2 * * * /usr/local/bin/mongodb_backup.sh >> /var/log/mongodb_backup.log 2>&1
    

    脚本示例(含压缩和删除旧备份):

    #!/bin/bash
    BACKUP_DIR="/backups/mongodb"
    DATE=$(date +%Y%m%d)
    mkdir -p $BACKUP_DIR
    mongodump --out $BACKUP_DIR/$DATE
    tar -czvf $BACKUP_DIR/$DATE.tar.gz $BACKUP_DIR/$DATE
    rm -rf $BACKUP_DIR/$DATE
    find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -exec rm {} \;
    

二、恢复配置

  1. 全量恢复

    mongorestore --host localhost --port 27017 /path/to/backup/full_20250819
    
  2. 增量恢复
    先恢复全量备份,再重放oplog:

    mongorestore --oplogReplay /path/to/backup/incremental
    
  3. 恢复单个数据库/集合

    • 恢复指定数据库:
      mongorestore --db mydb /path/to/backup/mydb
      
    • 恢复指定集合:
      mongorestore --db mydb --collection users /path/to/backup/mydb/users
      
  4. 注意事项

    • 恢复前需停止MongoDB服务:
      sudo systemctl stop mongod
      
    • 恢复后重启服务:
      sudo systemctl start mongod
      
    • 定期验证备份有效性(如使用mongorestore --dryRun模拟恢复)。

0
看了该问题的人还看了