在MongoDB中执行压缩时,到底阻止了什么?

在MongoDB中执行压缩时,到底阻止了什么?,mongodb,blocking,sharding,repair,Mongodb,Blocking,Sharding,Repair,当在MongoDB碎片上的集合上运行新的2.0+compact命令时,文档中说在compact运行时命令被阻止。我的问题是,到底什么被阻止了?仅对该碎片上的集合执行命令?是否在群集中对该集合执行所有命令?所有操作,无论该碎片上的集合如何 诸如此类 有人知道吗 我认为这只是针对该碎片上的集合的命令,因为在一个碎片上压缩集合在理论上应该独立于其他碎片,因此才有切分的意义 谢谢, Justin通常在辅助服务器上运行压缩,因为压缩是针对每个节点的,而不是针对集群中的每个集合。运行时,节点处于恢复状态。因

当在MongoDB碎片上的集合上运行新的2.0+compact命令时,文档中说在compact运行时命令被阻止。我的问题是,到底什么被阻止了?仅对该碎片上的集合执行命令?是否在群集中对该集合执行所有命令?所有操作,无论该碎片上的集合如何

诸如此类

有人知道吗

我认为这只是针对该碎片上的集合的命令,因为在一个碎片上压缩集合在理论上应该独立于其他碎片,因此才有切分的意义

谢谢,
Justin

通常在辅助服务器上运行压缩,因为压缩是针对每个节点的,而不是针对集群中的每个集合。运行时,节点处于恢复状态。因此,无法处理任何读写操作。您可以在rs.status()中看到这一点。完成该辅助课程后,您将进入下一个辅助课程。如果您已经完成了所有的二级备份,您将退出主备份(使一个新压缩的二级备份取代主备份),然后在现在的二级备份(以前的主备份)上运行压缩备份

我甚至不确定您是否可以通过mongos运行Compression,因为它应该只在mongod上运行