`

mongoDB 分片

阅读更多
    mongoDB的分片。要mongos查询数据时候 先查询configsvr看数据在那台shard上,configsvr上边放的是metar信息,指的是那条数据在那个片上。由此可以看出mongo在做分片的时候咱们至少要有一个configsvr,和两个以上的shard(片)信息。
    第一步启动两台以上的mongo服务
        ./bin/mongod --dbpath /home/m17  --logpath /home/log/log17.log --fork --port 27017
        ./bin/mongod --dbpath /home/m18 --logpath /home/log/log18.log --fork --port 27018
    第二步 启动 一个configsvr
       ./bin/mongod --dbpath /home/m19 --logpath /home/log.m19.log --fork --port 27019 --configsvr
     第三部启动一个mongos
        ./bin/mongos --configdb 192.168.1.12:27019 --logpath /home/log/log20.lg --port 40000
      第四部链接上mongos
     ./bin/mongo --port 40000
      sh.addShard('192.168.1.202:27017')
      sh.addShard('192.168.1.202:27018')
      第五步设置分片规则
       sh.enableShard('shop') //shop启动分片
       sh.shardCollection('shop.grades','grade_id') //grade_id 片键 (表的主键)
       db.settings.save({_id:'chunksize'},{$set:{value:1}}); //设置每一个chunk的大小,(每一片上的数据分了很多个chunk)
      第六步手动预先分片(如果不走分片,chunk会来回移动形成很大的io流)
        sh.splitAt('db.collection',{grade_id(片键):1000}) //db下的一个表,在碰到1000的时候进行分片     

    到这里分片就完成了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics