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

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

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

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

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


迁移结构图

具体步骤如下:

  • 第一步:申请一台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控制台
    • 然后在ESC上运行下列命令:
mongorestore --host [上图中查得的地址] --authenticationDatabase admin -u root

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //我所经历的大数据平台发展史(三):互联网时代 • 上篇http://www.infoq.com/cn/arti...
    葡萄喃喃呓语阅读 51,343评论 10 200
  • 摘要:8月24日,阿里云数据库技术峰会到来,本次技术峰会邀请到了阿里集团和阿里云数据库老司机们,为大家分享了一线数...
    肆虐的悲傷阅读 873评论 0 0
  • 11月,写作群,写作接力 第一组 壹号 大鱼 【开篇】 黄昏,金色光给一切洒下了温暖,但无论这光是多么有包容性的暖...
    李源_源哥阅读 230评论 0 0
  • 我道一声欢喜 也盼着 你回一句愿意 我一声欢喜 苦等着 你一句愿意 我的一生欢喜 只求着 你说一句愿意 一声欢喜 ...
    棹洲阅读 199评论 2 0
  • 作者/胄宁 愿你今后的日子啊, 清澈似水, 明朗如画, 不管遇到什么困难, 都能大吃一顿, 大睡一觉, 第二天以最...
    胄宁阅读 299评论 0 3