• mongo13----application set与分片结合


    replation set配合分片
    
    
    打开3台服务器,B服务器(202)放configserv, C,D服务器(203.204)放置复制集
    
    192.168.1.203和192.168.1.204分别运行之前的sh start.sh(要把ip和rs的名字改了),那么就在这2个ip上搭建了一个replation set.
    192.168.1.203>192.168.1.204> sh start.sh reset
    192.168.1.203>192.168.1.204> sh start.sh install    //复制集创建完毕(2个片创建完毕)
    192.168.1.203>192.168.1.204> sh start.sh repl
    
    //接下来202 ip创建mongos和configsrv,
    192.168.1.202> sh start.sh reset  //清理初始化
    192.168.1.202> mkdir -p /home/m20 /home/mlog 
    
    //初始化configsrv(一般也是分在不同的服务器上,防止down掉)
    192.168.1.202> /usr/local/mongodb/bin/mongod --dbpath /home/m20/ --logpath /home/mlog/m20.log --port 27020 --fork --configsvr     //27020端口
    //初始化mongos
    192.168.1.202> /usr/local/mongodb/bin/mongos --logpath /data/mlog/r30.log --port 30000 --configdb 192.168.202:27020   --fork    //端口是30000,configser是192.168.202:27020,mongos和configsvr连在了一起
    
    ps aux | grep momgo
    
    //连接30000(最好用ip连接,不要只输入端口)
    192.168.1.202> ./bin/mongo 192.168.1.202:30000
    
    //添加repl set为片,现在3者都连接到一起了,
    192.168.1.202> sh.addShard('rs3/192.168.1.203:27017')   //17端口的复制集加进去
    192.168.1.202> sh.addShard('rs4/192.168.1.204:27018')   //18端口的复制集加进去
    
    192.168.1.202> sh.status();  //看到建立好了
    
    
    192.168.1.202> sh.enableSharding('shop'); //shop库是要分片的
    192.168.1.202> sh.shardCollection('shop.user',{id:1});  //shop库的user表,用id来做片键,分到哪个片上,
    
    //手动分片,id遇到1000的整数倍就拆一下
    192.168.1.202> sh.splitAt('shop.user',{id:1000}) //1000拆一下
    192.168.1.202> sh.splitAt('shop.user',{id:2000}) //2000拆一下
    192.168.1.202> sh.splitAt('shop.user',{id:3000}) //3000拆一下,多的话可以写一个for循环。
    
    192.168.1.202> sh.status()
    
    192.168.1.202> use shop
    192.168.1.202> for(var i=1;i<=4000;i++) {//一共4000条
        db.user.insert({userid:i,name:"kitty"})
    } 
    
    
    //现在03,04是片,并且还在复制集有2个拷贝。1---2000在203,2000----4000在204上
    
    192.168.1.203> ./bin/mongo
    192.168.1.203> use shop
    192.168.1.203> show tables   //自动创建了库和表
    192.168.1.203> db.user.find().count()  //2001条
    192.168.1.203> db.user.find().skip(1980)  
    
    192.168.1.203> ./bin/mongo --port 27018    //片上的secondary次节点
    192.168.1.203> use shop
    192.168.1.203> rs.slaveok()    //不然不能看
    192.168.1.203> db.user.find().count()  //2001条
    192.168.1.203> db.user.find().skip(1980)    //完全一样了
    
    
    
    
    
    192.168.1.204> ./bin/mongo
    192.168.1.204> use shop
    192.168.1.204> show tables   //自动创建了库和表
    192.168.1.204> db.user.find().count()  //1999条
    192.168.1.204> db.user.find().skip(1980) 
    
    192.168.1.204> ./bin/mongo --port 27018    //片上的secondary次节点
    192.168.1.204> use shop
    192.168.1.204> rs.slaveok()    //不然不能看
    192.168.1.204> db.user.find().count()  //2001条
    192.168.1.204> db.user.find().skip(1980)    //完全一样了
    
    
    
    start.sh文件: 
    #!/bin/bash
    IP='192.168.1.202'
    NA='rsb'
    
    if [ "$1" = "reset" ]
    then
            pkill -9 mongo
            rm -rf /home/m*
            exit
    fi
    
    
    if [ "$1" = "install" ]
    then
    
        mkdir -p /home/m0 /home/m1 /home/m2 /home/mlog
    
        /usr/local/mongodb/bin/mongod --dbpath /home/m0 --logpath /home/mlog/m17.log --logappend --port 27017 --fork 
    --replSet ${NA}
        /usr/local/mongodb/bin/mongod --dbpath /home/m1 --logpath /home/mlog/m18.log --logappend --port 27018 --fork 
    --replSet ${NA}
        /usr/local/mongodb/bin/mongod --dbpath /home/m2 --logpath /home/mlog/m19.log --logappend --port 27019 --fork 
    --replSet ${NA}
       
        exit
    fi
    
    
    if [ "$1" = "repl" ]
    then
    /usr/local/mongodb/bin/mongo <<EOF
    
    use admin
    rsconf = {
    _id:'${NA}',
    members:[
    {_id:0,host:'${IP}:27017'},
    {_id:1,host:'${IP}:27018'},
    {_id:2,host:'${IP}:27019'},
    ]
    }
    rs.initiate(rsconf)
    EOF
    fi

  • 相关阅读:
    理解老板是治疗职场心态最好的药
    给青年创业者, 风险投资的十大谎言
    在尊重人的基础上发展人
    预付费
    提高记忆力的最好方法是进行记忆力训练
    九绝招巧妙应付职场各类人
    写在深夜下班路上
    25岁不得不想的问题
    谈IT技术人员的创业转摘
    职场沟通必备8个黄金句型
  • 原文地址:https://www.cnblogs.com/yaowen/p/8177225.html
Copyright © 2020-2023  润新知