一、准备工作
/usr/local/mongodb/bin、/usr/local/mongodb/data、/usr/local/mongodb/etc)与源服务器一致。/var/lib/mongo)、配置文件(如/etc/mongodb.conf)有读写权限;安装scp(默认集成)或rsync(yum install -y rsync)工具用于文件传输。二、常用方法:mongodump/mongorestore(逻辑备份恢复)
mongodump命令导出指定数据库(如mydb)的数据到本地目录(如/tmp/mongodb_backup)。若需认证,添加--username、--password、--authenticationDatabase参数;若备份所有数据库,省略--db参数。mongodump --host 127.0.0.1 --port 27017 --username admin --password 123456 --authenticationDatabase admin --db mydb --out /tmp/mongodb_backup
scp将备份目录递归复制到目标服务器的目标路径(如/tmp/mongodb_restore)。scp -r /tmp/mongodb_backup root@目标服务器IP:/tmp/mongodb_restore
mongorestore命令将备份数据导入目标MongoDB实例。若目标数据库已存在,添加--drop参数先删除旧数据(谨慎使用);若恢复所有数据库,直接指定备份目录。mongorestore --host 127.0.0.1 --port 27017 --username admin --password 123456 --authenticationDatabase admin /tmp/mongodb_restore/mydb
三、物理文件迁移法(适合大规模数据或实时同步)
mongo shell进入admin数据库,执行db.shutdownServer();或使用mongod --shutdown --dbpath /var/lib/mongo命令(需替换为实际数据目录)。tar命令压缩数据目录(如/var/lib/mongo),生成data.tar.bz2文件;通过scp传输到目标服务器。tar jcvf /tmp/data.tar.bz2 /var/lib/mongo
scp /tmp/data.tar.bz2 root@目标服务器IP:/tmp
/usr/local/mongodb/data);修改数据目录权限为mongod用户(如chown -R mongod:mongod /usr/local/mongodb/data)。tar -xvjf /tmp/data.tar.bz2 -C /usr/local/mongodb/
chown -R mongod:mongod /usr/local/mongodb/data
mongod --config /usr/local/mongodb/etc/mongodb.conf),检查服务状态是否正常。四、实时同步方法(适合不停机迁移)
/etc/mongodb.conf)添加replication: replSetName: "rs0",重启服务;通过mongo shell初始化复制集(rs.initiate())。replSetName: "rs0"),启动服务;使用rs.add("目标服务器IP:27017")将目标节点添加到复制集,等待数据同步完成。mongodb://目标服务器IP:27017),移除源服务器节点。五、注意事项
backup角色或dbAdmin角色),避免因权限不足导致操作失败。rsync增量同步减少传输时间。mongo shell连接目标数据库,执行show dbs、use mydb; db.collection.find().count()等命令,验证数据完整性与一致性。