阅读量:0
MongoDB在CentOS中的数据备份方法
一 常用备份方式与适用场景
- 逻辑备份 mongodump/mongorestore:导出为 BSON 文件,便于按库/集合恢复、迁移与审计,适合大多数业务场景与副本集/分片集群的日常备份。
- 物理备份(文件系统快照/企业备份):直接拷贝数据文件或使用企业级工具,恢复速度快、适合TB级数据,但要求一致性快照与更严格的运维流程。
- 云托管备份:如使用 Atlas,可直接利用其持续备份与时间点恢复能力,减少自建运维复杂度。
二 使用 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。--port -d -o - 启用鉴权:在命令中加入
-u,或配置 URI:-p mongodump --uri "mongodb://user:pass@host:port/db"。 - 压缩归档:例如
tar -czvf /backup/mongodb_$(date +%F).tar.gz -C /backup/mongodb。 - 常用恢复:
- 全量恢复:
mongorestore /backup/mongodb/ - 指定库:
mongorestore --db/backup/mongodb/ / - 指定集合:
mongorestore --db--collection /backup/mongodb/ / / .bson
- 全量恢复:
- 远程备份:将备份目录同步到远端,例如
rsync -avz /backup/mongodb/ user@remote:/path或scp -r /backup/mongodb/ user@remote:/path。 - 备份日志:记录过程便于排查,例如
mongodump --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。 - 定时任务(每天 02:00 执行):
sudo crontab -e,添加0 2 * * * /data/backup/mongod.sh。 - 建议将脚本与备份目录归属 mongod 运行用户,避免权限问题:
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/mydb - 集合级:
mongorestore --db mydb --collection users /backup/mongodb_2025-08-01/mydb/users.bson
- 库级:
- 演练验证:在测试环境定期抽样恢复,或用
--dryRun校验可恢复性;必要时使用--drop在恢复前清理同名集合(生产慎用)。
五 实践建议与注意事项
- 备份时段与性能:在业务低峰执行,备份会产生大量 I/O;必要时限速或错峰。
- 一致性:副本集建议连接到隐藏/延迟节点或secondary执行逻辑备份,降低对线上影响;对强一致要求场景,可在维护窗口内操作。
- 鉴权与网络:为备份专用账号授予最小权限(如 backup/restore 角色);限制备份网络访问。
- 存储与保留:监控磁盘空间,按保留天数清理旧备份;异地/云端二次拷贝提升容灾能力。
- 物理备份补充:若采用文件系统快照或企业工具,需保证一致性快照与恢复流程演练;对 WiredTiger 存储引擎,注意检查点一致性。
- 安全:避免在脚本中硬编码密码,优先使用 URI 或凭据文件,并设置合适的文件权限。
以上就是关于“MongoDB在CentOS中的数据备份方法”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm