如何把数据迁移到阿里云云MongoDb

阿里云大概在2015年底推出了云MongoDb,这一下子解放了我们这些基于MongoDb开发应用的工程师很多麻烦事。以前,为了搭建MongoDb,要创建好几个ECS,然后自己用脚本建立集群,还要自己备份到OSS。阿里云的云MongoDb是3个node的集群,最小的instance大概价格在300+人民币/月,应该算比较合理。

要使用阿里云云MongoDb,第一步就要迁移数据,我们也可以假设源数据库在非阿里云的平台上。

阿里云提供了一个DTS工具,但是我使用了每次都在第二步罗列collections供我选择的时候报错,非常沮丧;另外使用这种方法需要暂时把源数据库暴露在公网上,因此有一些安全的风险在,特别是那些没有密码运行mongodb千万不要冒险,现在刷mongodb的病毒很猖狂。

我采用的迁移方法是使用Mongo自带的mongodump和mongorestore工具,另外需要暂时用一台阿里云ECS,因为阿里云的云MongoDb是不允许阿里云外的服务器访问的,所以必须要另外一台ECS作为桥接,如下图所示:

《如何把数据迁移到阿里云云MongoDb》 迁移结构图

具体步骤如下:

  • 第一步:申请一台ECS,并安装mongodb-org-server, mongodb-org-shell, 及mongodb-org-tools,具体安装过程建mongo官网;
  • 第二步:从源MongoDb获取数据到本地。不加特别的设置,运行完毕后,mongodump就会在当前目录下创建一个dump目录,并把把数据下载到以指定的数据库的名字为名的目录下,比如:./dump/myDatabase
# mongodump的具体命令请参考mongo的帮助文档
mongodump -h [源MongoDb地址,比如:10.10.10.10:27017] -d [需要下载的数据库名]
  • 第三步:将本地数据迁移到阿里云云MongoDb
    • 首先要到阿里云的云MongoDb控制台中获取地址,如下图:

      《如何把数据迁移到阿里云云MongoDb》 阿里云的云MongoDb控制台

    • 然后在ESC上运行下列命令:
mongorestore --host [上图中查得的地址] --authenticationDatabase admin -u root

顺利的话,MongoDb就迁移完成了。

    原文作者:荣观
    原文地址: https://www.jianshu.com/p/d8a64bc90605
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞