Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 MongoDB 分片上的集合上运行新的 2.0+ compact 命令时,文档说命令在 compact 运行时被阻止。我的问题是,究竟是什么被阻止了?仅针对该分片上的该集合的命令?集群中该集合的所有命令?所有操作,无论该分片上的收集如何?
等等等等....
有人知道吗?
我认为这只是针对该分片上的集合的命令,因为在一个分片上压缩一个集合理论上应该独立于其他分片,因此分片的意义。
谢谢,贾斯汀
通常,您在辅助节点上运行压缩,因为压缩是每个节点,而不是集群中的每个集合。运行时,节点进入恢复状态。因此,它无法处理任何读取或写入。您可以在 rs.status() 中看到这一点。一旦该次要完成,您将进入下一个次要。如果你已经完成了所有的从属节点,你就让你的主节点下台(导致一个新压缩的从节点接管作为主节点)然后在现在的从节点(以前的主节点)上运行压缩。
我什至不确定您是否可以通过 mongos 运行压缩,因为它只能在 mongod 上运行。