我有一个5GB的数据库,我想压缩和修复。不幸的是,我在该数据库上运行了一个活动的应用程序。
我想知道使用MongoDB 1.8运行mongod --repair
任务是否会阻止数据库上的所有其他写操作。
我不想在几个小时内关闭整个应用程序......
答案 0 :(得分:3)
您可以查看--journal键。它为最后的操作保留二进制日志,恢复可能比修复花费的时间少得多。
答案 1 :(得分:2)
是的,repairDatabase
是阻止操作,这意味着您需要在计划的维护时段内执行此操作。
或者,如果您正在使用副本集,则可以通过从副本集中取出一个成员,修复它,将其重新添加到副本集并重复直到所有修复完成来无需停机时进行修复。有关详细信息和警告,请参阅the note in yellow at the end of this section。