MongoDB在CentOS中的数据备份方法
一 常用备份方式与适用场景
二 使用 mongodump 进行逻辑备份
sudo yum install -y mongodb-org-tools。sudo mkdir -p /backup/mongodb。mongodump --out /backup/mongodb/$(date +%Y-%m-%d_%H-%M-%S)。mongodump -h <host> --port <port> -d <db> -o <out_dir>。-u <user> -p <password>,或配置 URI:mongodump --uri "mongodb://user:pass@host:port/db"。tar -czvf /backup/mongodb_$(date +%F).tar.gz -C /backup/mongodb <timestamped_folder>。mongorestore /backup/mongodb/<timestamped_folder>mongorestore --db <db> /backup/mongodb/<timestamped_folder>/<db>mongorestore --db <db> --collection <coll> /backup/mongodb/<timestamped_folder>/<db>/<coll>.bsonrsync -avz /backup/mongodb/ user@remote:/path 或 scp -r /backup/mongodb/ user@remote:/path。mongodump --out <out> --logpath /var/log/mongodb/backup.log。三 自动化备份脚本与定时任务
#!/bin/bash
set -e
DUMP="/usr/bin/mongodump"
OUT_DIR="/backup/mongodb/tmp"
TAR_DIR="/backup/mongodb"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
DAYS=14
mkdir -p "$OUT_DIR" "$TAR_DIR"
OUT_PATH="$OUT_DIR/$DATE"
# 如需鉴权,取消下一行注释并填写凭据
# AUTH="--uri mongodb://user:pass@localhost:27017"
$DUMP --out "$OUT_PATH" $AUTH --logpath "$OUT_PATH/backup.log"
tar -czf "$TAR_DIR/mongodb_$DATE.tar.gz" -C "$OUT_DIR" "$DATE"
rm -rf "$OUT_PATH"
# 清理旧备份
find "$TAR_DIR" -name "mongodb_*.tar.gz" -mtime +$DAYS -delete
echo "Backup finished: $TAR_DIR/mongodb_$DATE.tar.gz"
chmod +x /data/backup/mongod.sh。sudo crontab -e,添加 0 2 * * * /data/backup/mongod.sh。chown -R mongod:mongod /backup/mongodb /data/backup。四 恢复与验证
tar -xzvf /backup/mongodb_2025-08-01.tar.gz -C / && mongorestore /backup/mongodb_2025-08-01。mongorestore --db mydb /backup/mongodb_2025-08-01/mydbmongorestore --db mydb --collection users /backup/mongodb_2025-08-01/mydb/users.bson--dryRun 校验可恢复性;必要时使用 --drop 在恢复前清理同名集合(生产慎用)。五 实践建议与注意事项