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.

但是你可以有一个只有一个成员的副本集,这没问题。 副本集将只有主副本集,应该可以工作。