Debian系统MongoDB数据恢复步骤
sudo systemctl stop mongodmongodump生成的目录、物理备份xtrabackup生成的目录),并验证备份文件的完整性和可恢复性(如检查文件大小、修改时间是否符合预期)。逻辑备份是通过mongodump生成的BSON格式文件,适用于常规数据恢复场景。
若备份时使用tar压缩(如tar -czvf mongodb_backup.tar.gz /backups/mongodb),需先解压到指定目录:
tar -xzvf /path/to/backup/mongodb_backup.tar.gz -C /path/to/restore/directory
例如解压到/backups/restored目录。
使用mongorestore工具恢复数据,基本语法如下:
mongorestore --db 数据库名 /path/to/backup/directory/数据库名mydatabase数据库(备份目录为/backups/restored):mongorestore --db mydatabase /backups/restored/mydatabasemongorestore --db 数据库名 --collection 集合名 /path/to/backup/directory/数据库名/集合名.bsonmydatabase数据库中的users集合:mongorestore --db mydatabase --collection users /backups/restored/mydatabase/users.bson--db参数即可。恢复完成后,通过MongoDB Shell连接实例,检查数据是否正确恢复:
mongo --host 127.0.0.1 --port 27017
进入目标数据库:use 数据库名
查询集合数据:db.集合名.find().pretty()。
物理备份是通过xtrabackup生成的二进制文件,适用于大规模数据或需要快速恢复的场景(需提前安装xtrabackup工具)。
若备份时压缩,先解压:
/usr/local/xtrabackup/bin/xtrabackup --decompress --remove-original --target-dir=/data/db
其中/data/db为MongoDB数据目录(需与mongod.conf中的storage.dbPath一致)。
解压后,需应用redo日志以确保数据一致性:
/usr/local/xtrabackup/bin/innobackupex --apply-log /data/db。
恢复完成后,启动MongoDB服务:
sudo systemctl start mongod。
若备份时启用了--oplog选项(记录备份期间的操作日志),可通过--oplogReplay参数恢复增量数据:
mongorestore --db 数据库名 --oplogReplay /path/to/backup/directory
此命令会将备份期间的所有操作(如插入、更新、删除)重放,实现精确到某一时间点的数据恢复。
mongodb用户)对备份目录和MongoDB数据目录有读写权限。