温馨提示×

centos mongodb配置怎样备份

小樊
35
2026-10-23 10:19:13
栏目: 云计算

在 CentOS 上备份 MongoDB,常见、可靠的方式有下面几种,按使用频率和推荐程度给你说明:


一、使用 mongodump(最常用、官方推荐)

1️⃣ 安装 MongoDB 客户端工具

如果只装了服务端,可能没有 mongodump:

# CentOS 7 示例(根据你 MongoDB 版本调整)
yum install -y mongodb-org-tools

2️⃣ 基本备份命令

mongodump \
  --host 127.0.0.1 \
  --port 27017 \
  --username admin \
  --password 'yourpassword' \
  --authenticationDatabase admin \
  --out /data/backup/mongodb/$(date +%F)

✅ 说明:

  • --out:备份目录(建议带日期)
  • 若未开启鉴权,可去掉 --username 等参数

3️⃣ 压缩备份(推荐)

mongodump --host 127.0.0.1 --port 27017 \
  --username admin --password 'pwd' \
  --authenticationDatabase admin \
  --archive=/data/backup/mongo_$(date +%F).archive --gzip

4️⃣ 只备份某个库

mongodump --db mydb --out /data/backup/mydb

二、使用 crontab 定时备份(生产必做)

示例:每天凌晨 2 点备份

crontab -e

添加:

0 2 * * * /usr/bin/mongodump --host 127.0.0.1 --port 27017 --username admin --password 'pwd' --authenticationDatabase admin --out /data/backup/mongodb/$(date +\%F)

三、文件系统级备份(适合大库)

⚠️ 必须停机或锁库

1️⃣ 锁库

mongo
> use admin
> db.fsyncLock()

2️⃣ 拷贝数据目录

cp -r /var/lib/mongo /data/backup/mongo-data

3️⃣ 解锁

> db.fsyncUnlock()

✅ 适合 TB 级数据,但不灵活


四、MongoDB 副本集(推荐生产环境)

如果你有 Replica Set:

  • 可从 Secondary 节点备份
  • 不影响主库性能
  • 可结合 mongodump 或快照

五、恢复备份

mongorestore \
  --host 127.0.0.1 \
  --port 27017 \
  --username admin \
  --password 'pwd' \
  --authenticationDatabase admin \
  /data/backup/mongodb/2026-01-21

压缩恢复:

mongorestore --gzip --archive=/data/backup/mongo.archive

六、备份建议(最佳实践)

✅ daily + weekly
✅ 备份文件异地存储(OSS / 异地服务器)
✅ 定期演练恢复
✅ 开启 MongoDB 审计 & 监控


如果你愿意,我可以:

  • 给你一份 CentOS 自动备份脚本
  • 帮你 配置副本集备份
  • 按你的 MongoDB 版本给精确命令

你现在是 单机 / 副本集 / 云 MongoDB?

0 踩