温馨提示×

centos mongodb如何备份

小樊
43
2026-09-14 23:53:51
栏目: 云计算

在 CentOS 上备份 MongoDB,常见做法有 mongodump 逻辑备份文件系统/快照备份副本集延迟节点备份 等。下面以最常用、最安全的 mongodump + cron 定时备份 为例说明。


一、使用 mongodump 备份(推荐)

1. 安装 MongoDB 客户端(如未安装)

# CentOS 7 示例(如已安装可跳过)
sudo 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)

如果是 无认证

mongodump --out /data/backup/mongodb/$(date +%F)

3. 只备份某个库

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

4. 压缩备份(推荐)

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

二、定时自动备份(crontab)

1. 编写备份脚本

vi /usr/local/bin/mongo_backup.sh

内容示例:

#!/bin/bash
BACKUP_DIR=/data/backup/mongodb
DATE=$(date +%F)

mongodump --host 127.0.0.1 --port 27017 \
  --username admin --password 'yourpassword' \
  --authenticationDatabase admin \
  --gzip --out $BACKUP_DIR/$DATE

# 保留7天
find $BACKUP_DIR -type d -mtime +7 -exec rm -rf {} \;
chmod +x /usr/local/bin/mongo_backup.sh

2. 添加定时任务

crontab -e

每天凌晨 2 点:

0 2 * * * /usr/local/bin/mongo_backup.sh

三、恢复数据(mongorestore)

恢复整个备份

mongorestore \
  --host 127.0.0.1 \
  --username admin \
  --password 'yourpassword' \
  --authenticationDatabase admin \
  --gzip /data/backup/mongodb/2026-01-21

恢复单个库

mongorestore --db mydb --gzip /data/backup/mydb_gzip/mydb

四、其他方式(了解)

1. 文件系统冷备份(需停机)

systemctl stop mongod
cp -r /var/lib/mongo /data/backup/mongo_data
systemctl start mongod

2. LVM / 云快照(生产推荐)

  • 不中断服务
  • 适合大数据量

3. 副本集延迟节点

  • 专门用于容灾备份

五、生产建议

✅ 每天全量 + 定期校验
✅ 备份异地 / 对象存储
✅ 定期演练恢复
✅ 开启 --oplog 用于时间点恢复(副本集)

如果你告诉我:

  • MongoDB 版本
  • 是否副本集
  • 数据量大小

我可以给你更合适的备份方案。

0