MongoDB : 如何在没有复制的情况下进行分片?
MongoDB : How to perform sharding without replication?
我正在尝试在 2 台机器内完成分片,配置服务器、路由器、机器 A 中的 1 个分片和机器 B 中的另一个分片。我发现很难做到这一点,因为我是初学者而且也做不到在网上找到很多文档/教程。我已经启动了两个 mongod 实例,一个作为配置服务器,另一个作为分片,但对如何进行一无所知。
下面是我的两个 mongod(config 和 shard )conf 文件中的分片配置:
配置服务器:
sharding:
clusterRole: configsvr
碎片:
sharding:
clusterRole : shardsvr
根据文档,下一步是执行命令 rs.initiate(),但我不需要复制。我仍然尝试执行以防万一并收到以下错误:
{
"ok" : 0,
"errmsg" : "This node was not started with the replSet option",
"code" : 76,
"codeName" : "NoReplicationEnabled"
}
分片时是否必须进行复制?如何在 2 台机器内进行分片而不复制?
这不可能,请参阅 sharding Options:
Note
Setting sharding.clusterRole
requires the mongod instance to be
running with replication. To deploy the instance as a replica set
member, use the replSetName
setting and specify the name of the
replica set.
但是你可以有一个只有一个成员的副本集,这没问题。
副本集将只有主副本集,应该可以工作。
我正在尝试在 2 台机器内完成分片,配置服务器、路由器、机器 A 中的 1 个分片和机器 B 中的另一个分片。我发现很难做到这一点,因为我是初学者而且也做不到在网上找到很多文档/教程。我已经启动了两个 mongod 实例,一个作为配置服务器,另一个作为分片,但对如何进行一无所知。
下面是我的两个 mongod(config 和 shard )conf 文件中的分片配置:
配置服务器:
sharding:
clusterRole: configsvr
碎片:
sharding:
clusterRole : shardsvr
根据文档,下一步是执行命令 rs.initiate(),但我不需要复制。我仍然尝试执行以防万一并收到以下错误:
{
"ok" : 0,
"errmsg" : "This node was not started with the replSet option",
"code" : 76,
"codeName" : "NoReplicationEnabled"
}
分片时是否必须进行复制?如何在 2 台机器内进行分片而不复制?
这不可能,请参阅 sharding Options:
Note
Setting
sharding.clusterRole
requires the mongod instance to be running with replication. To deploy the instance as a replica set member, use thereplSetName
setting and specify the name of the replica set.
但是你可以有一个只有一个成员的副本集,这没问题。 副本集将只有主副本集,应该可以工作。