2016-05-31 212 views
2

我的MongoDB现在不能lanuch,当我想开始蒙戈得到了错误***aborting after invariant() failure如何使用collection-0 - ****。wt文件恢复Mongo(WT引擎)?

现在我要恢复征收0 - **** WT文件到新的数据库,这可能吗?

+0

仅供参考,关于数据库管理的问题属于DBA StackExchange而不是StackOverflow。请参阅:[我可以在这里询问哪些主题?](http://stackoverflow.com/help/on-topic)。希望主持人应该迁移这个,所以不需要重新发布。 – Stennie

回答

0

与在MongoDB 3.2中一样,只有WiredTiger数据目录的完整备份可以复制到新实例中。 WiredTiger收集或索引文件不是自包含的;他们依靠WiredTiger.*目录文件中的其他元数据。如果数据文件不完整或不一致,则预计您将启动的不变性/断言。

如果你想备份和恢复单个集合,你应该使用mongodumpmongorestore,如:

mongodump --db test --collection northwind --host host1 

mongorestore --db test dump/test/northwind.bson --host host2 

对于支持的完整备份过程,请参阅:MongoDB Backup Methods

+0

嗨,@Stennie,我们保留了整个dbpath文件夹,但是现在我们不能发布mongo。我可以自己构建'WiredTiger。*'目录文件吗? – diggzhang

+0

@diggzhang您的原始'mongod'实例是否仍在运行?如果您有权访问正在运行的实例,我会遵循其中一个受支持的备份和还原过程。如果你不......作为最后的手段,你可以尝试'mongod --repair'。我认为使用完整的dbpath进行恢复是一个不同的问题(并且可能涉及比StackOverflow更适合的讨论)。我建议在[DBA StackExchange](https://dba.stackexchange.com/tags/mongodb)或[mongodb用户讨论组]上(https://groups.google.com)提供更多详细信息。 COM /论坛/#!论坛/ mongodb的用户)。 – Stennie

+0

@ Stennie,是的我使用'mongod --reqair',但仍然有跟踪错误。 – diggzhang