windows mongodb 分片

    xiaoxiao2021-04-15  426

    版本4.0.9

    分片的概念我就不说了。

    下面讲我用的方式来测试mongodb的分片。

    1.创建文件夹

    在config创建文件

    在data创建文件

    2.配置cfg文件

    分片1的副本集1

    分片1的副本集2

    分片1的副本集3

    分片2的副本集1

    分片2的副本集2

    分片2的副本集3

    配置节点1

    配置节点2

    配置节点3

    路由节点

    3.添加windows本地服务

    cmd 管理员身份打开,切换到mongo的bin路径(注意 路由节点是mongos

    mongod -config "E:\my\config\shard11.cfg" --serviceName "MongoDB_Shard11" --install --serviceDisplayName "MongoDB_Shard11"

    mongod -config "E:\my\config\shard12.cfg" --serviceName "MongoDB_Shard12" --install --serviceDisplayName "MongoDB_Shard12"

    mongod -config "E:\my\config\shard13.cfg" --serviceName "MongoDB_Shard13" --install --serviceDisplayName "MongoDB_Shard13"

    mongod -config "E:\my\config\shard21.cfg" --serviceName "MongoDB_Shard21" --install --serviceDisplayName "MongoDB_Shard21"

    mongod -config "E:\my\config\shard22.cfg" --serviceName "MongoDB_Shard22" --install --serviceDisplayName "MongoDB_Shard22"

    mongod -config "E:\my\config\shard23.cfg" --serviceName "MongoDB_Shard23" --install --serviceDisplayName "MongoDB_Shard23"

    mongod -config "E:\my\config\config2.cfg" --serviceName "MongoDB_Config2" --install --serviceDisplayName "MongoDB_Config2"

    mongod -config "E:\my\config\config3.cfg" --serviceName "MongoDB_Config3" --install --serviceDisplayName "MongoDB_Config3"

    mongos -config "E:\my\config\route.cfg" --serviceName "MongoDB_Route" --install --serviceDisplayName "MongoDB_Route"

    然后启动windows服务。

    4.配置切片和Config Server副本集(Config Server 没有主次节点之分)。

    连接到副本集的任意一个节点

    mongo 127.0.0.1:13211

    rs.initiate( {_id : "shard1",members: [{ _id: 0, host: "127.0.0.1:13211", priority:3 },{ _id: 1, host: "127.0.0.1:13212", priority:2 },{ _id: 2, host: "127.0.0.1:13213", arbiterOnly:true }]})

    连接到副本集的任意一个节点

    mongo 127.0.0.1:13221

    rs.initiate( {_id : "shard2",members: [{ _id: 0, host: "127.0.0.1:13221", priority:3 },{ _id: 1, host: "127.0.0.1:13222", priority:2 },{ _id: 2, host: "127.0.0.1:13223", arbiterOnly:true }]})

    连接到副本集的任意一个节点

    mongo 127.0.0.1:13201

    rs.initiate( {_id : "rscfg",members: [{ _id: 0, host: "127.0.0.1:13201" },{ _id: 1, host: "127.0.0.1:13202" },{ _id: 2, host: "127.0.0.1:13203" }]})

    5.配置路由节点

    启动路由本地服务。

    连接路由节点

    mongo 127.0.0.1:13200

    配置分片shard1,shard2

    use admin

    db.runCommand({addshard:"shard1/127.0.0.1:13211,127.0.0.1:13212,127.0.0.1:13213"}) db.runCommand({addshard:"shard2/127.0.0.1:13221,127.0.0.1:13222,127.0.0.1:13223"})

    查看一下分片列表,确认分片是否配置成功

    db.runCommand({ listshards:1 })

    6.数据库配置

    对school库启用分片 db.runCommand({enablesharding:"school"})

    指定数据库里需要分片的集合和片键,哈希 分片 db.runCommand( { shardcollection : "school.user", key : {name: "hashed"} } ) 范围片键 db.runCommand( { shardcollection : "school.use",key : {name: 1,time:1}} )

    配置完毕。

     

     

    插入数据,如果是哈希 分片这可以在两个分片上看到数据的分布,如果是范围片键 则需要大量数据,因为一个片建的默认值很大少量数据只会在一个片建上。

     


    最新回复(0)