mongdb 分片 集群 搭建

分片集群的搭建

MongoDB分片集群由mongos路由进程(轻量级且非持久化进程)、复制集组成的片shards(分片一般基于复制集故障转移和冗余备份功能)、一组配置服务器(存储元数据信息,一般冗余3台)构成。

192.168.118.22  分片0分片1 配置 路由

192.168.118.32  分片0分片1 配置

192.168.118.24  分片0分片1 配置

 

配置rs0分片

dbpath = /usr/local/mongodb/db_rs0/data/

logpath = /usr/local/mongodb/db_rs0/logs/1.log

logappend = true

journal = true

port = 40000

fork = true

maxConns = 5000

bind_ip = 0.0.0.0

replSet = rs0

shardsvr = true

auth = false

 

配置rs1分片

dbpath = /usr/local/mongodb/db_rs0/data/

logpath = /usr/local/mongodb/db_rs0/logs/1.log

logappend = true

journal = true

port = 40000

fork = true

maxConns = 5000

bind_ip = 0.0.0.0

replSet = rs1

shardsvr = true

auth = false

 

配置服务器

 

dbpath = /usr/local/mongodb/db_configs/data/

logpath = /usr/local/mongodb/db_configs/logs

logappend = true

port = 40002

maxConns = 5000

bind_ip = 0.0.0.0

replSet = cfgset

configsvr = true

auth = false

fork = true

 

路由服务器

 

 

logpath = /usr/local/mongodb/mongos/logs/

logappend = true

port = 40003

fork = true

maxConns = 5000

bind_ip = 0.0.0.0

configdb = cfgset/192.168.118.22:40002,192.168.118.24:40002,192.168.118.32:40002

 

  1. 启动所有的rs0 rs1 配置服务器

 

  1. mongod --config /usr/local/mongodb/db_rs0/config_rs0/rs0.conf

 

  1. mongod --config  /usr/local/mongodb/db_rs1/config_rs1/rs1.conf

 

  1. mongod --config  /usr/local/mongodb/db_configs/config_cfgservice/cfgserver.conf

 

  1. 初始化副本集rs0  rs1

 

rs.initiate({_id:"rs1", members:[{_id:1,host:"192.168.118.22:40001"},{_id:2,host:"192.168.118.24:40001"},{_id:3,host:"192.168.118.32:40001"}]})

rs.initiate({_id:"rs0", members:[{_id:1,host:"192.168.118.22:40000"},{_id:2,host:"192.168.118.24:40000"},{_id:3,host:"192.168.118.32:40000"}]})

 

  1. 初始化配置服务器

 

rs.initiate({_id:"cfgset",configsvr:true, members:[{_id:1,host:"192.168.118.22:40002"},{_id:2,host:"192.168.118.24:40002"},{_id:3,host:"192.168.118.32:40002"}]})

查看执行结果rs.status()

{

        "ok" : 1,

        "operationTime" : Timestamp(1559547423, 1),

        "$gleStats" : {

                "lastOpTime" : Timestamp(1559547423, 1),

                "electionId" : ObjectId("000000000000000000000000")

        },

        "$clusterTime" : {

                "clusterTime" : Timestamp(1559547423, 1),

                "signature" : {

                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

                        "keyId" : NumberLong(0)

                }

        }

}

  1. 启动路由服务 路由的启动方式不一样

mongos --config  /usr/local/mongodb/db_mongo/cfg_mongo.conf

 

  1. 添加分片

sh.addShard("rs0/192.168.118.22:40000,192.168.118.24:40000,192.168.118.32:40000")

sh.addShard("rs1/192.168.118.22:40001,192.168.118.24:40001,192.168.118.32:40001")

 

  1. 分片的表和数据库要特殊处理  片键要有索引

mongos> use chavin

switched to db chavin

mongos>  db.users.insert({userid:1,username:"ChavinKing",city:"beijing"})

 

sharding version: {

        "_id" : 1,

        "minCompatibleVersion" : 5,

        "currentVersion" : 6,

        "clusterId" : ObjectId("5cf4f0a047ab8a12968ff2cb")

  }

  shards:

        {  "_id" : "rs0",  "host" : "rs0/192.168.118.22:40000,192.168.118.24:40000,192.168.118.32:40000",  "state" : 1 }

        {  "_id" : "rs1",  "host" : "rs1/192.168.118.22:40001,192.168.118.24:40001,192.168.118.32:40001",  "state" : 1 }

  active mongoses:

        "3.6.11-22-g7861aff" : 1

  autosplit:

        Currently enabled: yes

  balancer:

        Currently enabled:  yes

        Currently running:  no

        Failed balancer rounds in last 5 attempts:  0

        Migration Results for the last 24 hours:

                No recent migrations

  databases:

        {  "_id" : "chavin",  "primary" : "rs1",  "partitioned" : false }//

False说明没有分片保存

        {  "_id" : "config",  "primary" : "config",  "partitioned" : true }

                config.system.sessions

                        shard key: { "_id" : 1 }

                        unique: false

                        balancing: true

                        chunks:

                                rs0     1

                        { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : rs0 Timestamp(1, 0)

 

10.创建索引

mongos> db.users.ensureIndex({city:1})

设置分片

  1. mongos>  sh.shardCollection("chavin.users",{city:1})
  2. 保存数据
  3. mongos> for(var i=1;i<10000;i++) db.users.insert({userid:i,username:"chavin"+i,city:"beijing"})      
  4. WriteResult({ "nInserted" : 1 })
  5. mongos> for(var i=1;i<10000;i++) db.users.insert({userid:i,username:"dbking"+i,city:"changsha"})
  6. WriteResult({ "nInserted" : 1 })
  7. mongos> sh.status()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值