mongorestore 在空 system.js.bson 时失败

mongorestore fails on empty system.js.bson

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

为了转储我运行:
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 可以正常工作。

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

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