Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB 1.8中的mongod--repair仍然是一个阻塞任务吗?_Mongodb_Database - Fatal编程技术网

MongoDB 1.8中的mongod--repair仍然是一个阻塞任务吗?

MongoDB 1.8中的mongod--repair仍然是一个阻塞任务吗?,mongodb,database,Mongodb,Database,我有一个5GB的数据库,我想压缩和修复。不幸的是,我有一个活动的应用程序在该数据库上运行 我想知道使用MongoDB 1.8运行mongod--repair任务是否会阻止数据库上的所有其他写入操作 我不想在几个小时内关闭整个应用程序…您可以查看--journal key。它为最后的操作保留二进制日志,恢复所需的时间可能比修复所需的时间少得多 是,repairDatabase是一种阻塞操作,这意味着您需要在计划维护期间执行此操作 或者,如果您使用的是副本集,则可以通过从副本集中取出一个成员,对其进

我有一个5GB的数据库,我想压缩和修复。不幸的是,我有一个活动的应用程序在该数据库上运行

我想知道使用MongoDB 1.8运行
mongod--repair
任务是否会阻止数据库上的所有其他写入操作

我不想在几个小时内关闭整个应用程序…

您可以查看--journal key。它为最后的操作保留二进制日志,恢复所需的时间可能比修复所需的时间少得多


是,
repairDatabase
是一种阻塞操作,这意味着您需要在计划维护期间执行此操作


或者,如果您使用的是副本集,则可以通过从副本集中取出一个成员,对其进行修复,将其重新添加到副本集中,然后重复,直到所有成员都修复完毕,从而在不停机的情况下进行修复。有关更多信息和注意事项,请参阅。

如果您不想保留额外的副本集,也不想在Amazon AWS上进行良好的备份,也可以使用它。它允许从工作的mongo执行EBS快照而不受任何影响。我还应该注意,您可以在mongo shell中使用
db.repairDatabase()
执行修复,而不仅仅是使用
--repair
命令行标志。然而,这仍然是一个阻塞操作,只是调用它的另一种方式。