2011-08-19 26 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