mongodb 导入中断

2017-11-10T15:14:59.925+0800    [##......................]    bs.operationHistory   11.7MB/136MB  (8.5%)
2017-11-10T15:14:59.925+0800    [........................]             bs.sendSms   3.16MB/128MB  (2.5%)
2017-11-10T15:14:59.925+0800    [#.......................]  bs.topicData_wellness  3.70MB/58.3MB  (6.4%)
2017-11-10T15:14:59.925+0800    [#.......................]      bs.topicData_test  3.27MB/43.8MB  (7.5%)
2017-11-10T15:14:59.925+0800
2017-11-10T15:14:59.940+0800    [#.......................]  bs.topicData_wellness  3.70MB/58.3MB  (6.4%)
2017-11-10T15:14:59.940+0800    Failed: bs.topicData_wellness: error restoring from bs/topicData_wellness.bson: insertion error: EOF

如上,总是出现导入出错,这个是什么问题?
数据来源是2.4版本的库,现在导入倒3.x版本,这是问题所在吗?

阅读 3k
2 个回答

又是一个自问自答了……
首先同意上面MONGOING的回答,不同版本的MONGO对bson的解析会有问题……
本次虽也有遇到这个bson解析问题,但截图没有放出来所以感谢楼上对这个注意事项的补充。
这次的导入失败的原因我最后是通过开启swap来解决的,因此我想导致本次问题的最大可能就是vps的内存不够,导致bson没办法大规模解析出来。
问题通过开启swap 2Gb后顺利导入,奇怪的是,没有遇到bson解析错误的问题,我想应该是新版本有兼容性吧。

原则上不支持在不同的版本之间dump/restore数据,特别是3.4以后BSON规范做了修改,更可能会失败。
另外你可以检查一下bs/topicData_wellness.bson是不是完整,看错误提示有可能是这个文件不完整导致的。
试一下:

    bsondump bs/topicData_wellness.bson | tail -n 10

看看会不会正确输出结果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进