2011-08-19 45 views

回答

2

是,repairDatabase是一个阻塞操作,这意味着你将需要一个计划的维护窗口中做到这一点。

或者,如果您正在使用副本集,可以通过从副本集中取出一个成员,修复副本,将其重新添加到副本集并重复,直到所有副本都被修复。有关更多信息和注意事项,请参阅the note in yellow at the end of this section

+0

我还应该注意,您可以在mongo shell中使用'db.repairDatabase()'执行修复,而不仅使用'--repair'命令行标志进行修复。但是,这仍然是阻塞操作,只是调用它的一种不同方式。 – dcrosta

3

您可以查看--journal键。它保留了上次操作的二进制日志,恢复可能比修复花费的时间少得多。

http://www.mongodb.org/display/DOCS/Durability+and+Repair

+0

当您不想保留额外的副本集并希望在Amazon AWS上拥有良好的备份时,它也可用。它允许在没有任何影响的情况下从工作的mongo执行EBS快照 – varela