MongoDB将碎片添加到现有集群-会发生什么?
我试图确保我了解在向现有分片集群添加新分片(副本集)时会发生什么。当我添加这些新成员时,它看到有一个新的碎片成员可用,Mongo然后开始重新安排块,以便它可以利用新成员,对吗?当这种情况发生时,你会受到什么样的影响?和往常一样,我假设您希望在看到不利的性能数字时(如果其他调优选项没有帮助的话)尝试添加这些成员 只是想更好地了解在集群已经存在的情况下添加碎片会发生什么 谢谢MongoDB将碎片添加到现有集群-会发生什么?,mongodb,Mongodb,我试图确保我了解在向现有分片集群添加新分片(副本集)时会发生什么。当我添加这些新成员时,它看到有一个新的碎片成员可用,Mongo然后开始重新安排块,以便它可以利用新成员,对吗?当这种情况发生时,你会受到什么样的影响?和往常一样,我假设您希望在看到不利的性能数字时(如果其他调优选项没有帮助的话)尝试添加这些成员 只是想更好地了解在集群已经存在的情况下添加碎片会发生什么 谢谢 S当您将碎片添加到现有集群时,它将自动成为每个碎片集合中块数最少的碎片。这意味着它将成为迁移的默认目标(从块数最多的碎片开始
S当您将碎片添加到现有集群时,它将自动成为每个碎片集合中块数最少的碎片。这意味着它将成为迁移的默认目标(从块数最多的碎片开始),直到事情变得更加平衡。但是,每个shard primary(负责迁移)一次只能参与一次迁移。因此,平衡需要一段时间,尤其是在负载下 就迁移本身而言,您已经在当前集群中看到了迁移,所以这就是如何判断迁移的影响。您可以在日志中查看最近的迁移,也可以查看changelog(一个包含最新迁移/拆分等的10MB封顶集合): 就发生的操作而言,要移动块:
对于未分片的数据,您可能希望将其保存在单独的副本集中,以确保您的分片按预期运行。感谢Adam我感谢InfoThreak@GatesVP提供的非常有用的信息!
// connect to a mongos, switch to the config DB
use config
// look at the changelog
db.changelog.find()