在CentOS上,MongoDB的备份恢复流程主要涉及使用mongodump
和mongorestore
工具。以下是详细的步骤:
登录到MongoDB服务器:
ssh user@your_mongodb_server
如果需要,切换到MongoDB用户:
sudo su - mongodb
执行备份命令:
使用mongodump
命令备份数据库。例如,备份所有数据库到指定目录:
mongodump --out /path/to/backup/directory
如果只想备份特定的数据库或集合,可以使用:
mongodump --db your_database_name --collection your_collection_name --out /path/to/backup/directory
为了节省存储空间,可以将备份文件压缩:
mongodump --out /path/to/backup/directory | gzip > /path/to/backup/directory/backup.gz
定期备份(可选):
可以使用crontab
设置定时任务,自动化备份操作。例如,创建一个备份脚本backup_mongodb.sh
:
#!/bin/bash
BACKUP_DIR="/backups"
DATE=$(date +%Y%m%d%H%M%S)
BACKUP_PATH="${BACKUP_DIR}/mongodb_backup_${DATE}"
mkdir -p ${BACKUP_PATH}
mongodump --out ${BACKUP_PATH}
echo "Backup completed: ${BACKUP_PATH}"
然后给予脚本执行权限:
chmod +x backup_mongodb.sh
使用crontab -e
添加到定时任务中,实现每日或每周的自动备份。
登录到MongoDB服务器:
ssh user@your_mongodb_server
如果需要,切换到MongoDB用户:
sudo su - mongodb
解压缩备份文件(如果之前进行了压缩):
gunzip /path/to/backup/directory/backup.gz
执行恢复命令:
使用mongorestore
命令恢复数据库。例如,恢复所有备份数据:
mongorestore /path/to/backup/directory
如果只想恢复特定的数据库或集合,可以使用:
mongorestore --db your_database_name /path/to/backup/directory/your_database_name
恢复特定集合:
mongorestore --db your_database_name --collection your_collection_name /path/to/backup/directory/your_database_name/your_collection_name.bson
恢复到特定时间点(可选):
如果需要恢复到备份时的特定时间点,可以使用--oplogReplay
选项:
mongorestore --oplogReplay /path/to/backup/directory
启动MongoDB服务:
sudo systemctl start mongod
验证数据恢复:
使用mongo
shell连接到MongoDB实例,并检查数据是否已恢复:
mongo
show dbs
use your_database_name
db.your_collection_name.find()