【问题标题】:mongo3.0 restore fails with error Failed: restore error: insertion error: EOFmongo3.0 恢复失败并出现错误失败:恢复错误:插入错误:EOF
【发布时间】:2016-03-12 14:14:00
【问题描述】:

我正在尝试使用 mongorestore 还原具有 100 个集合 (800GB) 的数据库,该数据库是 mongo 2.4.4 的备份。我使用了以下命令:

mongorestore -u <username> -p <password> -d bp_prod079 
             /data/backup/2015-11-28/bp_prod079 --batchSize=100

我正在使用 batchSize =1000, 500, 100 来尝试使其工作。我在 10-15 次收集后遇到插入错误。当我收到此错误时,它几乎完美地运行了近一个半小时。

失败:恢复错误:bp_prod079.ANEpisodeBreakdown:恢复错误 来自/data/backup/2015-11-28/bp_prod079/ANEpisodeBreakdown.bson: 插入错误:EOF

【问题讨论】:

  • ls -l /data/backup/2015-11-28/bp_prod079/ANEpisodeBreakdown.bson 的输出是什么?它是一个空文件吗?
  • ls -l /data/backup/2015-11-28/bp_prod079/ANEpisodeBreakdown.bson -rw-r--r-- 1 root root 1413518186 Nov 28 07:21 /data/backup/ 2015-11-28/bp_prod079/ANEpisodeBreakdown.bson
  • 它不是一个空文件。我也用 MongoDB-JIRA 开了一张票。他们说 3.0.7 中有一个错误。他们要求我使用 --batchSize=1 作为最后的手段。如果这不起作用,那么我必须等待 3.0.8。
  • 您可以在该备份上使用 3.0.6 mongorestore - 我假设您指的是 jira 中的 TOOLS-939?
  • 是的。它是 TOOLS-939。

标签: mongodb mongorestore


【解决方案1】:

对我来说,使用较小的 batchSize 作品。首先我有 --batchSize=50 并将其更改为 10 --batchSize=10 并且完美。

【讨论】:

  • 谢谢!为我工作!你在哪里找到的?
  • 我不记得了,抱歉,呵呵,谷歌搜索并进行了很多测试,直到它起作用。
  • 完美,这对我有用。我尝试了 1000 次、100 次但只有 10 次有效。
【解决方案2】:

在使用 WiredTiger 存储引擎(MongoDB v3.2.x 上默认)的 MongoDB 服务器上,内存不足时也会引发此错误,导致 mongorestoremongod 崩溃,作为 MongoDB 开发人员@ mpobrien 解释了here

解决方案是向服务器添加更多 RAM,或调整 storage.wiredTiger.engineConfig.cacheSizeGB 设置,如下所述: https://groups.google.com/d/msg/mongodb-user/Ms2MXCajreg/OsW6ixcSCgAJ

【讨论】:

  • 这对我有用。我在我的 2GB 服务器中将 cacheSizeGB 设置为 1。
猜你喜欢
  • 2019-04-01
  • 1970-01-01
  • 2017-10-15
  • 1970-01-01
  • 2016-07-17
  • 1970-01-01
  • 2018-02-24
  • 2019-03-28
  • 1970-01-01
相关资源
最近更新 更多