0

我有 6 个虚拟机(Master、3 个 configsvr 和两个分片);我想将副本集添加到我的分片中。

是否可以将一个分片设置为另一个分片的复制,反之亦然?或者我应该添加其他虚拟机作为分片的副本吗?

4

1 回答 1

0

简而言之:您应该为新的副本集节点添加新的虚拟机,并且您需要小心配置分片集群。

要回答您的第一个问题:

在单个主机上运行两个 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 实例)。

于 2017-04-25T09:50:27.187 回答