MongoDB:如何在不进行复制的情况下执行分片?

时间:2020-09-18 08:49:39

标签: mongodb sharding

我正在尝试使用配置服务器,路由器,机器A中的一个分片和机器B中的另一个分片在2台机器上完成分片。由于我是初学者,而且也找不到很多东西,因此我很难做到这一点在线文档/教程。我已经启动了两个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"
}

分片时是否必须进行复制?如何在两台机器之间进行分片而不复制?

1 个答案:

答案 0 :(得分:1)

那是不可能的,请参见sharding Options

注意

设置sharding.clusterRole要求mongod实例为 复制运行。将实例部署为副本集 成员,请使用replSetName设置并指定 副本集。

但是您可以将副本集设置为只有一个成员,这没问题。 副本集将只有主副本集,才能正常工作。