【问题标题】:mongorestore fails on empty system.js.bsonmongorestore 在空 system.js.bson 上失败
【发布时间】:2015-01-05 12:18:16
【问题描述】:

我正在尝试将转储的数据库恢复到本地服务器,但它失败了。

为了进行转储,我运行:
mongodump --host somehost.com -d app123 --port 10043 --username my_username --password my_password --out /tmp/mongodump
而且效果很好。

要恢复我运行:
mongorestore --db my_db --drop /tmp/mongodump/app123
它在空文件上失败:

2015-01-05T12:56:47.759+0100 /tmp/mongodump/app123/system.js.bson
2015-01-05T12:56:47.759+0100    going into namespace [my_db.system.js]
file /tmp/mongodump/app123/system.js.bson empty, skipping
2015-01-05T12:56:47.759+0100    Creating index: { key: { _id: 1 }, ns: "my_db.system.js", name: "_id_" }
2015-01-05T12:56:47.803+0100 DBClientCursor::init call() failed
assertion: 10276 DBClientBase::findN: transport error: 127.0.0.1:27017 ns: my_db.$cmd query: { getlasterror: 1 }  

如果我从转储中删除 system.*,那么 mongorestore 可以正常工作。

【问题讨论】:

  • 这不是编程问题。与数据库管理和配置相关的问题属于dba.stackexchange.com。 StackOverflow 是一个仅用于编程问题的网站。

标签: mongodb dump mongorestore


【解决方案1】:

我认为这与_id_ 索引有关。尝试删除或重命名它,然后再做一个mongodump 看看是否可行。

我曾经遇到过类似的问题,它与索引有关。我不记得我是删除了索引还是重命名了它。所以它可能归结为下划线,在这种情况下重命名它应该有效。或者索引中的某些内容已损坏,在这种情况下,删除它是您唯一的选择。

【讨论】:

  • 我正在尝试重命名或删除远程服务器上的 system.js/_id_ 索引,但索引保持不变。我正在使用 Robomongo 客户端,没有任何效果。日志中有错误:dropIndex failed
  • 尝试从 mongodump 目录中删除索引文件,看看是否导入。如果确实如此,那肯定与该索引有关。如果您不能删除索引,那么它很可能正在使用中。我们将在此处详细介绍您的实施细节,因此很难提供相关且准确的支持。
  • 删除文件system.js.metadata.json(存储索引)解决了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
  • 1970-01-01
  • 2018-10-20
  • 1970-01-01
相关资源
最近更新 更多