1.场景

想把远程服务器A中mongodb的某个数据库(或者多个)导入到远程服务器B的mongodb中

2.方法1

亲测一次性导入导出450G+文件无问题

windows的系统(安装有mongodb的服务)进入mongodb安装目录的bin目录下,dos窗口执行命令(windows)

导出数据
#从服务器88.88.88.88导出数据(数据库是名称叫db_name_server )到本地的D盘下的文件夹A_backup_mongo   

mongodump -h 88.88.88.88 --forceTableScan -d db_name_server -o D:/A_backup_mongo

导出数据,导出指定的表,添加 -c collectionname
mongodump -h 88.88.88.88 --forceTableScan -d db_name_server -c collectionname -o D:/A_backup_mongo


#导入数据
例从本地D盘下的文件夹A_backup_mongo拿数据,导入到服务器77.77.77.77(如果没有修改27017端口,那么导入命令无需指定端口)

mongorestore -h 77.77.77.77  D:/A_backup_mongo

#tip理论上,A_backup_mongo这个文件夹每次操作数据(导入导出)应为初始化状态,既空文件夹

如果目标服务器开启了密码验证,那么推送数据需要增加 -u  username   -p  password参数,如果磁盘设置到数据库路径那么需要指定数据库名称 -d dbname

mongorestore -h 77.77.77.77 -u  username   -p  password  D:/A_backup_mongo
mongorestore -h 77.77.77.77 -u  username   -p  password  -d dbname  D:/A_backup_mongo/dbname

3.方法2

拷贝data目录中对应的数据库文件到目标服务器的数据存储位置(测试mongo版本3.0,如果mongo为3.2及以上版本数据结构变成了块结构,需要筛选下数据)

缺点:

  1. 肉眼识别操作数据库,容易弄错。
  2. 操作完毕需要重启mongodb服务才可识别迁移过来的数据库,有违高可用场景。
  3. 需要登录mongodb所在服务器进行操作的相关权限,实际场景55开,可能没有操作权限的概率更大。

优点:

  1. 该方法的优势在于速度快,无需方法1中的过多的等待时间。
mongod --dbpath "D:\mongodb\data" --logpath "f:\mongodb\logs\mongo.log" --install --serviceName "MongoDB"

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐