mongodb导入导出数据
1.场景想把远程服务器A中mongodb的某个数据库(或者多个)导入到远程服务器B中monggodb中2.方法1亲测一次性导入导出20G+文件无问题windows的系统(安装有mongodb的服务)进入mongodb安装目录的bin目录下,dos窗口执行命令(windows)#从服务器88.88.88.88导出数据(数据库是名称叫db_name_server )到本地的D盘下的文件夹A_backu
·
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及以上版本数据结构变成了块结构,需要筛选下数据)
缺点:
- 肉眼识别操作数据库,容易弄错。
- 操作完毕需要重启mongodb服务才可识别迁移过来的数据库,有违高可用场景。
- 需要登录mongodb所在服务器进行操作的相关权限,实际场景55开,可能没有操作权限的概率更大。
优点:
- 该方法的优势在于速度快,无需方法1中的过多的等待时间。
mongod --dbpath "D:\mongodb\data" --logpath "f:\mongodb\logs\mongo.log" --install --serviceName "MongoDB"
更多推荐
已为社区贡献3条内容
所有评论(0)