时间:2021-07-01 10:21:17 帮助过:22人阅读
复制集设置成功之后,使用rs.conf()即可查看相关状态:
2、创建shard 复制集(以shard-1为例)
mongod --shardsvr --replSet <replSetname>
--shardsvr 声明此实例为集群的分片数据库实例
--replSet 指定复制集名称
分别使用以下命令,启动并初始化shard-1复制集的三个成员:
shard-1:
mongod --shardsvr --port 27023 --dbpath E:\devInstall\MongoDB\shard\shard-1\rs2-0 --replSet rs2 --smallfiles --oplogSize 128
mongod --shardsvr --port 27024 --dbpath E:\devInstall\MongoDB\shard\shard-1\rs2-1 --replSet rs2 --smallfiles --oplogSize 128
mongod --shardsvr --port 27025 --dbpath E:\devInstall\MongoDB\shard\shard-1\rs2-2 --replSet rs2 --smallfiles --oplogSize 128
初始化成功之后,,使用mongo shell 连接到3个分片服务器之一:
mongo --host <hostname> --port <port>
连接成功之后,设置复制集及其节点:
rs.initiate( { _id : <replicaSetName>, members: [ { _id : 0, host : "127.0.0.1:27023" }, { _id : 1, host : "127.0.0.1:27024"}, { _id : 2, host : "127.0.0.1:27025" } ] } )
设置成功后,使用rs.status()查看复制集及各个节点状态:
shard-2复制集配置同上。
3、mongos配置
启动连接到当前分片集群的mongos(路由)。需要使用 --configdb 选项来指定config server复制集。
格式:<configReplSetName>/cfg1.example.net:27017,cfg2.example.net:27017,...
在此,我们使用config server 复制集的第一个节点在27030端口上启动mongos路由服务:
mongos --configdb "rs1/127.0.0.1:27020" --port 27030
使用mongo shell连接到mongos实例:
使用db.isMster()判断是否到mongos实例,如果存在 "msg":"isdbgrid",表明成功连接。
4、将分片添加到集群中
依然在连接到mongos的mongo shell窗口。
使用sh.addShard("<replSetName>/s1-mongo1.example.net:27017")方法添加shard-1和shard-2两个分片到集群中。
5、使用哈希分片对collection进行分区
开启数据库分片功能:
sh.enableSharding("<database>")
指定数据库表中的字段key为分片键,并对其使用哈希分片策略。
sh.shardCollection("<database>.<collection>", { <key> : "hashed" } )
到此即结束了分片集群的设置。
例:开启shard数据的分片功能。指定student表的stuNum为哈希索引分片键。向student表插入7条数据记录。如下:
通过mongo 进入1分片shard-1,发现student表中包含5条数据。
通过mongo 进入2分片shard-2,发现student表中包含2条数据。
此分片集群中的student表中有7条数据。有5条在shard-1服务器上,2条在shard-2服务器上。(mongodb 通过计算stuNum字段的哈希值决定将其存储在哪一个分片上)
使用mongos的用户不关心数据存储在哪里,用户只知道这个集群的数据库中有7条student数据记录。
MongoDB分片集群配置实例
标签:服务器 集群架构 初始化 命令 .net code 节点 3.4 数据库