我有6个VM (Master、3个configsvr和两个碎片);我想在我的碎片中添加副本集。
是否可以将碎片设置为另一个碎片的复制,反之亦然?还是应该添加其他VM作为碎片副本?
发布于 2017-04-25 09:50:27
简而言之:您应该为新的复制集节点添加新的VM,并且您需要小心处理碎片集群配置.。
要回答你的第一个问题:
在单个主机上运行两个mongod实例(作为不同副本集的两个节点)将给您带来困难,例如使用RAM,因此您应该避免这种情况。相反,每个复制集节点应该位于不同的主机上(不同的VM)。
并进一步讨论碎片集群配置问题:
目前,簇配置将把每个碎片注册为一个独立的实例。
{ "_id" : "shard0000", "host" : "vms2:30000" }拥有将独立实例转换为副本集之后,碎片集群配置将需要是更新为匹配
连接到切分集群的mongos实例之一,并以下列形式发出命令:
db.getSiblingDB("config").shards.save({_id: "«name»", host: "«replica-set»/«member,»«member,»«...»" })将«name»替换为碎片的名称。将«replica-set»替换为副本集的名称。将«member,»«member,»«...»替换为副本集成员的列表。 重新启动所有mongos实例。如果可能的话,重新启动副本集的所有组件(即所有mongos和所有shard mongod实例)。
https://stackoverflow.com/questions/43605803
复制相似问题