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

最新文章

  1. 隐私泄露杀手锏 —— Flash 权限反射
  2. 利用JS实现购物网站商品放大镜效果
  3. Android实现Layout缩放动画
  4. SVN的忽略和只读使用方法学习记录
  5. ajaxFileUpload + lua-resty-upload 上传文件
  6. 记录一些容易忘记的属性 -- UIView
  7. Android.mk
  8. NetBeansRCP-添加/修改NetBeans的JVM启动参数
  9. sql-case列转行
  10. linux内存操作--ioremap和mmap学习笔记
  11. Apache 与tomcat区别
  12. linux 套接字编程入门--Hello World
  13. IPv4地址学习总结
  14. springIOC、AOP的一些注解
  15. IntelliJ IDEA安装配置
  16. 1706: 神奇的编码(zzuli)
  17. [转]Ubuntu /home下中文目录如何修改成英文?
  18. Topcoder的使用方法
  19. Cesium Vue开发环境搭建
  20. linux虚拟化课堂总结图2019_4_23

热门文章

  1. 【HDU 2028】Lowest Common Multiple Plus
  2. 解决safari里面淘宝京东页面无法打开以及打开后乱码的问题!
  3. xtu summer individual 2 C - Hometask
  4. PC硬件以及引导加载器
  5. bzoj 3223 文艺平衡树 splay 区间翻转
  6. [Vijos] SuperBrother打鼹鼠
  7. ***js常用方法汇总(源自实际中的项目)
  8. 携程Apollo(阿波罗)配置中心Spring Boot迁移日志组件,使用配置中心进行管理的思路
  9. EF关联
  10. 定制 ArcEngine 要素编辑工具