MonogDB 的自动分片将集合或块(即集合的一部分)分发到不同的节点/分片。是否可以配置哪些节点用于特定的集合或块?
示例:假设我们有集合 C1、C2 和 C3 以及节点/分片 N1、N2。
是否可以以 C1 始终存储在 N1 上的方式配置分片?
分片是否可以配置为 C3 的块 A 将始终存储在 N1 上?
我知道键范围存储在一个特殊的配置数据库中,并且平衡器进程会修改此数据以分配负载。但是,手动修改这些数据是否安全?
我有同样的问题,但没有找到明确的解决方案,但似乎 10Gen 正在朝这个方向做一些事情:
https://jira.mongodb.org/browse/SERVER-4621 这个: https ://jira.mongodb.org/browse/SERVER-939
第二个将于 11 月到期,所以我想我们可能会在 2.6 版中看到这一点。
强烈建议不要自行编辑配置数据。您最终可能会损坏数据库。
没有办法将一个块固定到一个分片上。它被称为自动分片是有原因的:)
从理论上讲,您可以关闭平衡器,将数据移动到您想要的位置并修改块配置。但是在这种情况下,你不能打开自动平衡(或者它会移动你的“固定”块)。
目前所有未分片的集合都驻留在数据库的主分片上。所有分片集合均匀(或多或少)分布在所有分片中。有一张关于将未分片的集合移动到其他分片的票,但尚不清楚何时(或是否)会实施。