【发布时间】:2020-12-14 15:13:23
【问题描述】:
我已经看到,为了进行数据分发,我可以在 ReplicaSet 或 Sharding 之间进行选择。
使用带有这些参数的 mongodb 代码--shardsvr --replSet。
mongod --shardsvr --port 27021 --replSet rs1 --dbpath C:\data\data5 --bind_ip localhost
我正在做的是制作一个分片服务器,它也是一个副本集,或者我只是在做一个分片? 如果我不做这两件事我应该写什么?
编辑
mongod --shardsvr --port 27020 --replSet rs1 --dbpath C:\data\data4 --bind_ip localhost
mongod --shardsvr --port 27021 --replSet rs1 --dbpath C:\data\data5 --bind_ip localhost
mongod --shardsvr --port 27022 --replSet rs1 --dbpath C:\data\data6 --bind_ip localhost
mongos --port 40000 --configdb rs0/localhost:27017
mongo --port 40000
rs.initiate( { _id : "rs1", members: [ { _id: 0, host: "localhost:27020" }, { _id: 1, host: "localhost:27021" }, { _id: 2, host: "localhost:27022" } ] })
sh.addShard( "rs1/localhost:27020,localhost:27021,localhost:27022")
sh.enableSharding("db")
sh.shardCollection("db.collection", { "_id" : 1 } )
当我执行这种代码时,我得到的是由 3 个“服务器”分片的集合,这些“服务器”也分片和复制集? 并且在 40'000 端口上使用 mongos,我可以连接并进行查询?
【问题讨论】:
-
好的,谢谢!我会用更好的代码编辑我的问题,所以你可以告诉我它是否有效?请
-
分片也是副本集。
-
副本集和分片集群有不同的用途。分片集群中的每个分片都需要是一个副本集。见Sharded Cluster。
-
所以我在这里做的是制作 3 个 mongod 碎片,它们也是副本集。我对吗?您的链接我已经阅读了好几次,但无法正确理解
-
@Minsky,你确定独立配置吗? Release Note for MongoDB 3.4 声明:要将分片集群升级到 3.4 版,配置服务器必须作为副本集运行。