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
看看是否可行。
我曾经遇到过类似的问题,它与索引有关。我不记得我是删除索引还是重命名它。所以它可能是下划线,在这种情况下重命名它应该有效。或者可能索引中的某些内容已损坏,在这种情况下,删除它是您唯一的选择。
我正在尝试将转储的数据库恢复到本地服务器,但失败了。
为了转储我运行:
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
看看是否可行。
我曾经遇到过类似的问题,它与索引有关。我不记得我是删除索引还是重命名它。所以它可能是下划线,在这种情况下重命名它应该有效。或者可能索引中的某些内容已损坏,在这种情况下,删除它是您唯一的选择。