温馨提示×

centos如何备份mongodb

小樊
44
2026-07-20 03:26:57
栏目: 云计算

CentOS 上备份 MongoDB,最常用、官方推荐的方式是使用 mongodump。下面按常见场景给你一个完整说明。


一、使用 mongodump 备份(推荐)

1. 安装 MongoDB 工具

如果只是备份,不需要完整 MongoDB,只要安装工具包即可。

CentOS 7

sudo yum install -y mongodb-org-tools

CentOS 8 / Rocky / Alma

sudo dnf install -y mongodb-org-tools

如果未配置 MongoDB YUM 源,可以先配置(示例 MongoDB 6):

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

2. 基本备份命令

mongodump --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase admin --out /data/backup/mongodb/$(date +%F)

✅ 示例(本地无密码):

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

✅ 备份指定数据库:

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

✅ 备份指定集合:

mongodump --db mydb --collection users --out /data/backup/mongodb/$(date +%F)

3. 压缩备份(强烈推荐)

mongodump --db mydb --archive=/data/backup/mongodb/mydb_$(date +%F).gz --gzip

✅ 优点:

  • 文件更小
  • 单文件,方便传输

二、恢复备份(mongorestore)

mongorestore --host 127.0.0.1 --port 27017 -u 用户 -p 密码 --authenticationDatabase admin /data/backup/mongodb/2026-01-21

或恢复 gzip 文件:

mongorestore --archive=/data/backup/mongodb/mydb_2026-01-21.gz --gzip

三、生产环境备份建议

1. 使用副本集(推荐)

如果是生产环境,建议:

  • secondary 节点 备份
  • 避免影响主库性能
mongodump --host secondary_ip --port 27017 --out /backup

2. 定时自动备份(crontab)

crontab -e

每天凌晨 2 点备份:

0 2 * * * /usr/bin/mongodump --archive=/data/backup/mongo_$(date +\%F).gz --gzip

3. 备份目录权限

mkdir -p /data/backup/mongodb
chown -R mongod:mongod /data/backup/mongodb

四、其他方式(了解即可)

方式 说明
文件系统快照 需要 LVM / 云磁盘快照
复制 dbPath 必须停服,不推荐
MongoDB Atlas 云托管自动备份

五、常见问题

❓ 备份时锁库吗?

  • mongodump 不会锁库
  • 但会产生 I/O 压力

❓ 能热备吗?

✅ 可以,MongoDB 支持热备份


六、总结(最常用命令)

mongodump --archive=/data/backup/mongo_$(date +%F).gz --gzip

如果你愿意,可以告诉我:

  • MongoDB 版本
  • 是否开启认证
  • 是否单节点 / 副本集
  • 数据量大小

我可以帮你定制一套 CentOS 生产级备份方案

0