我现在想将本地的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出现同样的错误。
所以可能是 v2到v3 之间的问题,也可能是v3本身的问题?但是感觉后者可能性不大。
求问,如何解决?
PHP中文网2017-05-02 09:25:08
我刚去试了一下,我从2.6.6 dump出来,然后在2.6.10 和 3.2.11中restore 都是成功的。应该不是版本问题,版本都是向下兼容的。
可能是数据问题?
我这没那么大的数据,不好测。你换小点表试试。
巴扎黑2017-05-02 09:25:08
仔细看文档,跨版本的升级是明确禁止的。正确的姿势是逐版本升级。两个选择:
你的情况应该是:2.4.9 -> 2.6.x -> 3.0.x -> 3.2.11
最后再拿3.2.11中导出的数据去mongorestore。
过程同样遵循以上流程。
每个版本的升级都要按照相应版本的Upgrade Notes进行,才能保证最终得到正确的结果。