在CentOS系统上备份和恢复MongoDB配置可以通过以下几种方法实现:
使用mongodump和mongorestore进行备份和恢复
-
全量备份:使用
mongodump
命令进行全量备份。例如,备份所有数据库和集合:mongodump --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin --gzip --out /data/backup/mongodump
备份指定数据库和集合:
mongodump --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin -d test -c trackEvent20230902 --gzip --out /data/backup/trackEvent20230902
-
增量备份:使用
mongodump
的--query
和--oplog
参数进行增量备份。例如,备份满足特定条件的数据:mongodump --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin --query '{ "date": { "$gte": ISODate("2023-09-02T00:00:00Z") } }' --oplog --out /data/backup/incremental
-
恢复:使用
mongorestore
命令进行恢复。例如,恢复所有备份数据:mongorestore --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin /data/backup/mongodump
恢复指定数据库:
mongorestore --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin /data/backup/mongodump/test
使用crontab进行定时备份
-
创建备份脚本,例如
/home/crontab/mongod_bak.sh
,并添加以下内容:#!/bin/sh /usr/local/mongodb/bin/mongodump --out /home/backup/mongod_bak/$(date +%Y_%m_%d)
-
修改脚本属性,使其可执行:
chmod +x /home/crontab/mongod_bak.sh
-
编辑
/etc/crontab
文件,添加定时任务,例如每天凌晨1点执行备份:0 1 * * * root /home/crontab/mongod_bak.sh
-
重启crond服务以应用设置:
service crond restart
注意事项
- 在执行备份和恢复操作之前,请确保MongoDB服务已停止或处于维护模式。
- 备份过程中可能会产生大量I/O操作,建议在低峰时段进行备份。
- 恢复操作会覆盖现有数据库中的数据,请谨慎操作。
通过上述方法,您可以在CentOS系统上有效地备份和恢复MongoDB配置,确保数据的安全性和可恢复性。