副本集具有多个副本保证了容错性,就算一个副本挂掉了还有很多副本存在,并且解决了“主节点挂掉了,整个集群内会自动切换”的问题。我们来看看mongoDB副本集的架构图:

由图可以看到客户端连接到整个副本集,不关心具体哪一台机器是否挂掉。主服务器负责整个副本集的读写,副本集定期同步数据备份,一但主节点挂掉,副本节点就会选举一个新的主服务器,这一切对于应用服务器不需要关心。我们看一下主服务器挂掉后的架构:

副本集中的副本节点在主节点挂掉后通过心跳机制检测到后,就会在集群内发起主节点的选举机制,自动选举一位新的主服务器。看起来很牛X的样子,我们赶紧操作部署一下!
官方推荐的副本集机器数量为至少3个,那我们也按照这个数量配置测试。
配置三台机器  ip地址 237.130和237.131 237.132
1、分别在每台机器上启动mongodb
每台机器都启动副本集  命令 mongod --replSet spock -f conf/mongd.conf  
关闭防火墙 service iptables stop
2、初始化副本集
启动成功以后 连接任意一台机器 启动mongo shell 
config = { _id:"spock", members:[ {_id:0,host:"192.168.237.130:12345"}, {_id:1,host:"192.168.237.131:12345"}, {_id:2,host:"192.168.237.132:12345"}] }
db = (new Mongo("192.168.237.131:12345")).getDB("test")
rs.initiate(config)
结果如图所示:
 
 
整个副本集已经搭建成功了。
可以看到 131的机器是 主节点 其他都是备份节点,
3、测试副本集数据复制功能
连接主节点:131的mongo
想test集合插入 文档
连接其他任意一台备份节点的机器
发现查看数据报错了  原因:备份节点会落后于主节点,可能没有最新写入的数据 所以备份节点默认情况下会拒绝读取请求,以防止应用程序意外拿到过期的数据,因此,如果在备份节点上做查询,会得到上述错误 意思是当前节点不是主节点
为了保护应用程序 以免意外连接到备份节点 读取到过期的数据.如果希望从备份节点读取数据 需要设置从备份节点读取数据没有问题的标识 如下图
注意:slaveOk是对连接的设置的不是数据库设置的,可以看到 我们在主节点插入的数据在 备份节点已经能查到了.
4 测试副本集故障转移功能
先停掉主节点mongodb 131,连接任意其余的机器 执行如下命令: db.shutdownServer()
可以看到 主节点已经 自动换成了130
 
关闭 副本集  replicaSet.stopSet()

mongodb配置副本集(多台服务器间的副本集搭建) replica[ˈrɛplɪkə]的更多相关文章

  1. Linux多台服务器间SSH免密码登录配置

    SSH实现各个服务器间的文件相互备份,如运行scp命令,可以实现免密码登录,从而可以使用SHELL脚本实现一些自动化的处理. 假如A机要免密码登录B机,具体方法如下: 1.在A机运行:"ss ...

  2. CentOS5.x、CentOS6.x 使用NFS及mount实现两台服务器间目录共享

    一.环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二.安装: NFS的安装配置:centos 5 : portmap:实现RPC(协议 ...

  3. windows server 2008 R2 部署NFS,实现多台服务器间、客户端间的共享目录。

    如何通过Windows Server 2008 R2建立NFS存储服务? 通过Windows Server 2008 R2,我们可以很容易地将其作为一台NFS存储服务器,得到一个NFS软存储,轻松解决 ...

  4. linux环境下,利用tc限制两台服务器间的网速,非常简单。

    最近再搞postgres的数据同步,需要模拟异地机房有带宽限制时的同步效果,所以想要限制一下两台机器之间的网速. ts命令功能很强,同时也好难理解和使用,经常浪费了好半天还是搞不定. 这里分享一个简单 ...

  5. mongodb配置

    Mongodb1. 安装2. CRUD3. 索引4. 副本及(replica sets)5. 分片(sharding) nosql 简单数据模型 元数据和应用数据分离 弱一致性 优势: 避免不必要的复 ...

  6. hadoop生态搭建(3节点)-13.mongodb配置

    # 13.mongodb配置_副本集_认证授权# ==================================================================安装 mongod ...

  7. 生产调优4 HDFS-集群扩容及缩容(含服务器间数据均衡)

    目录 HDFS-集群扩容及缩容 添加白名单 配置白名单的步骤 二次配置白名单 增加新服务器 需求 环境准备 服役新节点具体步骤 问题1 服务器间数据均衡 问题2 105是怎么关联到集群的 服务器间数据 ...

  8. rsync+sersync+inotify实现服务器间文件同步之一

    rsync+sersync+inotify实现服务器间文件同步之一:rsync安装配置 2013年12月14日 ⁄ Linux管理, 服务器集群技术 ⁄ 共 4925字 ⁄ rsync+sersync ...

  9. WinMail邮件服务器(客户端)环境搭建与配置

    WinMail邮件服务器(客户端)环境搭建与配置      一.在搭建WinMail邮件服务器(客户端)之前必备            (1).在虚拟机上安装两个干净无毒的操作系统          ...

随机推荐

  1. OOP的三大特性------封装、继承、多态

    封装 1.<1>类背后隐藏的思想是数据抽象和封装 <2>信息隐藏,隐藏对象的实现细节,不让外部直接访问到 将数据成员和成员函数一起包装到一个单元里,单元以类的形式实现 < ...

  2. 重做LVM文件系统之减小PV

    命令 缩小PV空间到120G,即PV上的vg00已将缩小到120G pvresize --setphysicalvolumesize 120g /dev/sda2 背景 机器上有一块900G本地的本地 ...

  3. 【bzoj4066】简单题 KD-tree

    题目描述 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: 命令 参数限制 内容 1 x y A 1<=x,y<=N,A是正整数 将格子x,y里的数 ...

  4. qw

    // 主页 @RequestMapping(value = "/home") public ModelAndView home() { ModelAndView MV = new ...

  5. UVa 11234 The Largest Clique

    找最长的连接的点的数量.用tarjan缩点,思考可知每一个强连通分量里的点要么都选,要么都不选(走别的路),可以动规解决. #include<iostream> #include<c ...

  6. 延迟加载技术 jquery lazyload

    原文发布时间为:2011-01-17 -- 来源于本人的百度文章 [由搬家工具导入]  文章: http://www.appelsiini.net/projects/lazyload 下载地址:htt ...

  7. sublime 常用快捷键备忘

    转一篇sublime常用的快捷键备忘 sublime常用快捷键 选择类Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本.Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本 ...

  8. Struts2的使用注解配置Action(零配置)

    1.首先引入struts2注解的jar包:struts2-convention-plugin.jar ------------------------------第一种方式-------------- ...

  9. C++调用Matlab引擎 图像读写与处理 (知识+代码篇)

    准备知识 之 Matlab Engine 执行命令 /* Execute matlab statement */ int engEvalString(Engine* ep, const char* s ...

  10. pip源配置

    1.使用配置文件配置文件[global]trusted-host=mirrors.aliyun.comindex-url=http://mirrors.aliyun.com/pypi/simple/ ...