温馨提示×

MongoDB在CentOS上的备份与恢复配置

小樊
49
2025-08-12 15:29:10
栏目: 云计算

一、备份配置

1. 手动备份

使用 mongodump 命令,示例:

  • 全量备份
    mongodump --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin --out /data/backup/mongodump
  • 指定数据库/集合
    mongodump --db test --collection trackEvent --out /data/backup/test
  • 压缩备份
    mongodump --out /data/backup/$(date +%Y%m%d) | gzip > /data/backup/$(date +%Y%m%d).tar.gz

2. 定时备份(crontab)

  • 创建备份脚本 /home/crontab/mongod_bak.sh
    #!/bin/bash
    DUMP=/usr/bin/mongodump
    OUT_DIR=/data/backup/mongod_bak/$(date +%Y%m%d)
    mkdir -p $OUT_DIR
    $DUMP -h 127.0.0.1 -u root -p 123456 --authenticationDatabase admin -o $OUT_DIR
    tar -zcvf /data/backup/mongod_bak_$(date +%Y%m%d).tar.gz $OUT_DIR
    find /data/backup/mongod_bak/ -mtime +7 -delete  # 删除7天前备份
    
  • 添加定时任务:
    crontab -e,添加 0 2 * * * /home/crontab/mongod_bak.sh(每天凌晨2点执行)

二、恢复配置

1. 解压备份(若为压缩文件)

tar -xzvf /data/backup/mongod_bak_20250812.tar.gz -C /

2. 恢复数据

  • 恢复全部数据库
    mongorestore --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin /data/backup/mongod_bak/20250812
  • 恢复指定数据库
    mongorestore --db test /data/backup/mongod_bak/20250812/test
  • 恢复时删除现有数据(慎用):
    mongorestore --drop --db test /data/backup/mongod_bak/20250812/test

3. 启动服务

sudo systemctl start mongod

三、注意事项

  1. 权限:确保备份/恢复目录可被MongoDB用户访问。
  2. 版本兼容:备份与恢复的MongoDB版本需一致。
  3. 服务状态:恢复前建议停止MongoDB服务,避免数据冲突。
  4. 验证备份:可通过 mongorestore --dryRun 模拟恢复测试。

参考来源:[1,2,3,5,6,7,8,9,10,11]

0