mongodb3.x - mongodb数据迁移(mongorestore,mongoimport)出错
巴扎黑
巴扎黑 2017-05-02 09:23:08
0
2
865

我现在想将本地的Mongo数据(50GB)迁移到阿里云上(内存1G)。本地版本是v2.4.9,服务器上是v3.2.11

  • 但是我使用mongodump将数据导出,传到阿里云上后用mongorestore恢复,恢复到1.8%左右就会出错。应该是内存不足引起的。
    错误提示Failed: sof.test: error restoring from /root/sof/test.bson.gz: insertion error: EOF

  • 我同时测试了mongoexport/mongoimport命令 都是同样的错误。

  • 我又进行了再次测试:我本地用另一台电脑装了mongo v3.2版本的,将本地v2.4.9机子上的数据导出来,传到阿里云服务器(mongo v3.2.11)上,mongorestore出现同样的错误。

我在阿里云上部署用mongo v2.x版本的话,就可以将数据恢复成功。

所以可能是 v2到v3 之间的问题,也可能是v3本身的问题?但是感觉后者可能性不大。
求问,如何解决?

巴扎黑
巴扎黑

Antworte allen(2)
洪涛

我刚去试了一下,我从2.6.6 dump出来,然后在2.6.10 和 3.2.11中restore 都是成功的。应该不是版本问题,版本都是向下兼容的。
可能是数据问题?
我这没那么大的数据,不好测。你换小点表试试。

巴扎黑

仔细看文档,跨版本的升级是明确禁止的。正确的姿势是逐版本升级。两个选择:

在本地逐版本升级到3.2再导出到远程

你的情况应该是:2.4.9 -> 2.6.x -> 3.0.x -> 3.2.11
最后再拿3.2.11中导出的数据去mongorestore。

在远程安装2.4.9再升级到3.2.11

过程同样遵循以上流程。
每个版本的升级都要按照相应版本的Upgrade Notes进行,才能保证最终得到正确的结果。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage