mongodump(逻辑备份)或直接复制数据目录(物理备份)。sudo systemctl stop mongod.service
mongod服务已正确配置(如/etc/mongod.conf中的storage.engine、net.bindIp等参数符合需求)。适用场景:快速迁移整个MongoDB数据目录(如更换磁盘、迁移至新服务器),无需逐个数据库恢复,效率高。
操作步骤:
rsync工具将源服务器的MongoDB数据目录(默认/var/lib/mongo)复制到目标服务器对应路径。rsync支持断点续传,适合大文件传输:rsync -avz /var/lib/mongo/ root@目标服务器IP:/var/lib/mongo/
注:
-a表示归档模式(保留权限、时间戳等),-v显示详细过程,-z启用压缩传输。
mongod用户(MongoDB默认运行用户),避免权限问题:sudo chown -R mongod:mongod /var/lib/mongo
/etc/mongod.conf),确认dbPath参数指向新的数据目录(如/var/lib/mongo),若有变更需同步修改:sudo vi /etc/mongod.conf
找到storage: section,确保dbPath值为新路径。mongod服务,并检查状态:sudo systemctl start mongod.service
sudo systemctl status mongod.service
若状态显示active (running),则表示迁移成功。适用场景:需要跨MongoDB大版本迁移(如4.4→5.0)、选择性迁移部分数据库/集合,或源数据目录损坏时。
操作步骤:
mongodump命令备份指定数据库(或全部数据库)到本地目录:mongodump --host 源服务器IP --port 27017 --out /path/to/backup
注:
--host指定源服务器IP(本地可省略),--port指定端口(默认27017),--out指定备份目录。
scp将备份目录传输到目标服务器:scp -r /path/to/backup root@目标服务器IP:/path/to/destination
mongorestore命令将备份数据恢复到目标MongoDB实例:mongorestore --host 目标服务器IP --port 27017 /path/to/destination
注:若目标数据库已存在,需添加
--drop参数先删除原有数据库(避免数据冲突)。
mongo
> show dbs; // 查看数据库列表
> use 数据库名; // 切换至目标数据库
> show collections; // 查看集合列表
mongo shell执行查询,确认关键表/字段的数据与源服务器一致。mongod服务稳定运行,无报错日志(查看日志文件/var/log/mongodb/mongod.log)。mongod:mongod),否则会导致mongod无法启动或写入数据。rsync的--partial参数支持断点续传)。