我有一个带有分片键和索引的集合。但是当我运行平衡时,该集合的 block 不会移动,而其他集合 block 将按预期移动到其他机器。仅从该集合中移动了一个 block 。
最佳答案
目前(这将在不久的将来改变),平衡器只会在存在足够的不平衡(8 个或更多)时开始移动 block 。如果 block 计数比该值更接近,则不会发生移动。 block 的数量取决于最大块大小(在 2.0.x 中编写本文时为 64MB)和写入的数据量。每次向 block 写入一定量的数据时都会触发一次拆分。
因此,如果您不向集合添加数据,或者数据不是很大,则可能需要一些时间来创建触发平衡轮所需的 block 数量。
您可以通过手动拆分和移动 block 来将其掌握在自己手中:
http://www.mongodb.org/display/DOCS/Splitting+Shard+Chunks
或者,您可以添加更多数据来触发拆分,平衡器最终将启动并为您移动数据 block 。
关于mongodb - mongoDB 平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9922727/