Ubuntu中MongoDB数据备份的常用方法及实践指南
在Ubuntu系统中,MongoDB数据备份的核心工具是mongodump(官方提供的逻辑备份工具),以下是详细的操作流程及注意事项:
sudo systemctl start mongod sudo systemctl enable mongod mongodb-org工具包):sudo apt update sudo apt install mongodb-org-tools # 包含mongodump、mongorestore等工具 备份所有数据库:将所有数据库备份到指定目录(如/home/user/mongodb_backup),执行:
mongodump --out /home/user/mongodb_backup 执行后,备份目录会生成与数据库同名的子目录(如mydatabase),内含.bson(数据)和.metadata.json(索引/配置)文件。
备份特定数据库:通过--db参数指定数据库名(如mydatabase):
mongodump --db mydatabase --out /home/user/mongodb_backup 备份特定集合:结合--db和--collection参数备份指定集合(如mycollection):
mongodump --db mydatabase --collection mycollection --out /home/user/mongodb_backup 带认证的备份:若MongoDB启用了认证,需通过--username、--password和--authenticationDatabase参数指定凭证(通常认证库为admin):
mongodump --username admin --password yourpassword --authenticationDatabase admin --out /home/user/mongodb_backup 压缩备份文件:使用tar命令将备份目录压缩,节省存储空间(如压缩为.tar.gz格式):
tar -czvf mongodb_backup_$(date +%Y%m%d).tar.gz /home/user/mongodb_backup 编写备份脚本:创建备份脚本(如/home/user/mongodb_backup.sh),内容如下:
#!/bin/bash BACKUP_DIR="/backup/mongodb" TIMESTAMP=$(date +%Y%m%d_%H%M%S) mkdir -p "$BACKUP_DIR" mongodump --username admin --password yourpassword --authenticationDatabase admin --out "$BACKUP_DIR/$TIMESTAMP" tar -czvf "$BACKUP_DIR/mongodb_backup_$TIMESTAMP.tar.gz" -C "$BACKUP_DIR" "$TIMESTAMP" find "$BACKUP_DIR" -type d -mtime +7 -exec rm -rf {} \; # 删除7天前的备份 赋予脚本执行权限:
chmod +x /home/user/mongodb_backup.sh 设置Cron任务:编辑crontab文件(sudo crontab -e),添加以下行实现每天凌晨2点自动备份:
0 2 * * * /home/user/mongodb_backup.sh 恢复所有数据库:将备份目录恢复到MongoDB实例(需停止相关服务以避免冲突):
mongorestore /home/user/mongodb_backup 恢复特定数据库/集合:通过--db和--collection参数指定恢复目标(如恢复mydatabase中的mycollection集合):
mongorestore --db mydatabase --collection mycollection /home/user/mongodb_backup/mydatabase/mycollection.bson root或当前用户)有读写权限,避免权限不足导致失败。通过以上步骤,可在Ubuntu系统中高效完成MongoDB数据的备份与管理,保障数据安全。