我現(xiàn)在想將本地的Mongo數(shù)據(jù)(50GB)遷移到阿里云上(內(nèi)存1G)。本地版本是v2.4.9,服務(wù)器上是v3.2.11
但是我使用mongodump將數(shù)據(jù)導(dǎo)出,傳到阿里云上后用mongorestore恢復(fù),恢復(fù)到1.8%左右就會出錯。應(yīng)該是內(nèi)存不足引起的。
錯誤提示Failed: sof.test: error restoring from /root/sof/test.bson.gz: insertion error: EOF
我同時測試了mongoexport/mongoimport命令 都是同樣的錯誤。
我又進行了再次測試:我本地用另一臺電腦裝了mongo v3.2版本的,將本地v2.4.9機子上的數(shù)據(jù)導(dǎo)出來,傳到阿里云服務(wù)器(mongo v3.2.11)上,mongorestore出現(xiàn)同樣的錯誤。
所以可能是 v2到v3 之間的問題,也可能是v3本身的問題?但是感覺后者可能性不大。
求問,如何解決?
我剛?cè)ピ嚵艘幌?,我?.6.6 dump出來,然后在2.6.10 和 3.2.11中restore 都是成功的。應(yīng)該不是版本問題,版本都是向下兼容的。
可能是數(shù)據(jù)問題?
我這沒那么大的數(shù)據(jù),不好測。你換小點表試試。
仔細看文檔,跨版本的升級是明確禁止的。正確的姿勢是逐版本升級。兩個選擇:
你的情況應(yīng)該是:2.4.9 -> 2.6.x -> 3.0.x -> 3.2.11
最后再拿3.2.11中導(dǎo)出的數(shù)據(jù)去mongorestore。
過程同樣遵循以上流程。
每個版本的升級都要按照相應(yīng)版本的Upgrade Notes進行,才能保證最終得到正確的結(jié)果。