项目目标:故障自动切换和自动修复成员节点,各个数据库之间数据完全一致。
项目描述:副本集没有固定主节点,是整个集群选举得出的一个主节点,当其不工作时变    更其他节点。最小的副本集也应该具备一个primary节点和两secondary节点。两个节点的副本集不具备真正的故障转移能力。所有Secondary都宕机、或则副本集中只剩下一个节点,则该节点只能为Secondary节点,也就意味着整个集群智能进行读操作而不能进行写操作,当其他的恢复时,之前的primary节点仍然是primary节点
项目环境:三台服务器RHEL6.5
          keepalived-1.2.7.tar.gz       
          mongodb-linux-x86_64-2.4.9.tgz
注意:副本集与主从有很大差别,但安装过程一样。
一、下载keepalived和mongodb源码包
          http://yunpan.cn/cLnMGSt7v2X4s  访问密码 956a
二、安装keepalived
         [root@mongodb1 ~]yum -y install gccopenssl-devel popt popt-devel libnl libnl-devel    kernel-devel    #所需依赖包                       
         [root@mongodb1~]# tar -zxvf keepalived-1.2.7.tar.gz
         [root@mongodb1~]# cd keepalived-1.2.7.tar.gz
         [root@mongodb1keepalived-1.2.7]# ./configure         #安装三部曲
         [root@mongodb1keepalived-1.2.7]# make
         [root@mongodb1keepalived-1.2.7]# make install
三、拷贝配置文件和启动脚本    
         [root@mongodb1~]# cp /usr/local/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/
         [root@mongodb1~]# cp /usr/local/etc/sysconfig/keepalived  /etc/sysconfig
         [root@mongodb1~]# mkdir /etc/keepalived
         [root@mongodb1~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
         [root@mongodb1~]# cp /usr/local/sbin/keepalived /usr/sbin/
四、添加开机启动
         [root@mongodb1~]#chkconfig --add keepalived              #添加服务
         [root@mongodb1~]#chkconfig keepalived on                 #开机启动
五、配置文件

[root@mongodb1~]#cat /etc/keepalived/keepalived.conf

!Configuration File for keepalived
         vrrp_instanceMG_1 {
                state BACKUP                                  #三台全为BACKUP
                interfaceeth 0
                virtual_router_id 55
                priority 100                       #其中两台优先级为100,最后一台为90
                advert_int 1
                #nopreempt                                    #不抢占资源
                authentication {
                    auth_type PASS
                    auth_pass 1111
                }     
                virtual_ipaddress {
            192.168.0.10                                        #虚拟IP
             }
         }
         #优先级为90的服务器以下可以不设置(还需要进一步完善)
            virtual_server 192.168.0.10 27017 {
                    delay_loop 6
                    lb_algo rr
                    persistence_timeout 5
                    protocol TCP
                    real_server 192.168.0.100 27017 {
                    notify_down /root/mongodb.sh
                    TCP_CHECK {
                            connect_timeout 3
                            nb_get_retry 3
                            delay_before_retry 3
                            connect_port 27017

}
                    }
            }
五(一)、cat mongodb.sh
            #!/bin/bash
            service keepalived stop

六、[root@mongodb1 ~]# service keepalived start
         正在启动 keepalived:                                      [确定]
七、以上配置,其中两台完全相同,最后一台优先级设定为90,并设置为不抢占资源。
八、命令ip a可查看虚拟IP,成功则显示虚拟IP。
九、安装mongodb
         [root@mongodb1 ~]# tar -zxvfmongodb-linux-x86_64-2.4.9.tgz  -C  /usr/local/
         [root@mongodb1 local]# mv mongodb-linux-x86_64-2.4.9/ mongodb
         [root@mongodb1 local]# cd mongodb/
         [root@mongodb1 mongodb]# mkdir db
         [root@mongodb1 mongodb]# mkdir logs
         [root@mongodb1 mongodb]# cd bin
         [root@mongodb1 bin]# cat mongodb.conf
         dbpath=/usr/local/mongodb/db                  #数据存放路径
         logpath=/usr/local/mongodb/logs/mongodb.log
         port=27017              
         fork=true                                      #以守护进程的方式运行MongoDB
         nohttpinterface=true                           #禁止HTTP状态接口默认情况下Mongodb                                                           在端口28017上运行http接口
          maxConns=5000                                 #最大同时连接数
          replSet=mongodb                               #同一副本集,必须
          #shardsvr=true                                #启动分片
十、启动mongodb
    [root@mongodb1bin]# numactl --interleave=all /usr/local/mongodb/bin/mongod                                    --config/usr/local/mongodb/bin/mongodb.conf
十一、[root@mongodb1 bin]# vim /etc/bashrc
          PATH=/usr/local/mongodb/bin:$PATH             #添加命令路径
      [root@mongodb1 bin]# source/etc/bashrc
      [root@mongodb1 ~]# vim/etc/rc.local
      numactl--interleave=all /usr/local/mongodb/bin/mongod --config                        /usr/local/mongodb/bin/mongodb.conf                    #追加命令,开机启动
十二、进入数据库,配置副本集服务器
     [root@mongodb1 ~]#mongo                          #进入mongodb
      MongoDB shell version: 2.4.9
      connecting to: test
      > config = {_id:"mongodb",members:[
   ...{_id:0,host:"192.168.0.100:27017",priority:10},
   ...{_id:1,host:"192.168.0.200:27017",priority:10},
   ...{_id:2,host:"192.168.0.5:27017",priority:5}]
   ...}
      >rs.initiate(config);                              #初始化副本集配置
      >rs.reconfig(cfg);                                #重新加载配置文件
十三、如果要增加服务器可执行命令
      >rs.add({"_id":3,"host":"192.168.0.300:27017"}) 
十四、有虚拟IP,可执行命令
     [root@mongodb1 ~]#mongo 192.168.0.10      #进入数据库,IP为虚拟
十五、以上配置如果执行,有报错信息,请自己百度。本人已成功配置。

mongodb群集的更多相关文章

  1. Tokumx 代替 Mongodb 群集部署

    一, 配置环境: 系统: CentOS 7 x64 tokumx1 ip: 192.168.0.155 tokumx2 ip: 192.168.0.156 tokumx3 ip: 192.168.0. ...

  2. MongoDB 备份方法

    翻译自 http://docs.mongodb.org/manual/core/backups/ 有以下几种方法来备份MongoDB群集: 通过复制底层数据文件来备份 通过mongodump来备份 通 ...

  3. mongodb 分片群集(sharding cluster)

    实际环境架构 分别在3台机器运行一个mongod实例(称为mongod shard11,mongod shard12,mongod shard13)组织replica set1,作为cluster的s ...

  4. MongoDB 搭建可复制群集

    一.概述 MongoDB复制群集支持节点故障自动切换,最小配置应包含3个节点,正常情况下应该至少包含两个数据节点,第三个节点可以是数据节点也可以是仲裁节点.仲裁节点的作用是当出现偶数节点导致无法仲裁的 ...

  5. MongoDB分片群集的部署(用心描述,详细易懂)!!

    概念: MongoDB分片是使用多个服务器存储数据的方法,以支持巨大的数据存储和对数据进行存储 优势: 1.减少了每个分片需啊哟处理的请求数,群集可以提高自己的存储容量和吞吐量 2.减少了每个分片存储 ...

  6. 【MangoDB分片】配置mongodb分片群集(sharding cluster)

    配置mongodb分片群集(sharding cluster) Sharding cluster介绍 这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monod ...

  7. 009.MongoDB分片群集部署

    一 前期准备 1.1 组件说明 MongoDB分片群集包含以下组件: shard:每个分片是分片数据的子集.从MongoDB 3.6开始,必须将分片部署为副本集. mongos:mongos充当查询路 ...

  8. 008.MongoDB分片群集概念及原理

    一 MongoDB分片介绍 1.1 分片 Mongodb另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足 ...

  9. MySQL Cluster 与 MongoDB 复制群集分片设计及原理

    分布式数据库计算涉及到分布式事务.数据分布.数据收敛计算等等要求 分布式数据库能实现高安全.高性能.高可用等特征,当然也带来了高成本(固定成本及运营成本),我们通过MongoDB及MySQL Clus ...

随机推荐

  1. Android常用元件

    本文来源于 http://blog.csdn.net/wxhlinux/article/details/8601170#comments 1.4  Android應用程式元件1.4.1  Activi ...

  2. uva12545 Bits Equalizer

    uva12545 Bits Equalizer You are given two non-empty strings S and T of equal lengths. S contains the ...

  3. 从零开始山寨Caffe·叁:全局线程管理器

    你需要一个管家,随手召唤的那种,想吃啥就吃啥. ——设计一个全局线程管理器 一个机器学习系统,需要管理一些公共的配置信息,如何存储这些配置信息,是一个难题. 设计模式 MVC框架 在传统的MVC编程框 ...

  4. 洛谷 P2737 [USACO4.1]麦香牛块Beef McNuggets Label:一点点数论 && 背包

    题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是“劣质的包装”.“看,”奶牛们说,“如 ...

  5. ZeroMQ接口函数之 :zmq_msg_move - 将一个消息里面的内容移动到另一个消息里面

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_move zmq_msg_move(3)   ØMQ Manual - ØMQ/3.2.5 Name zm ...

  6. Python开发: DOM

    文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...

  7. 使用WWW获取本地文件夹的XML配置文件

    Unity3D读取本地文件可以使用Resources.Load来读取放在Resources文件夹下的文件,如果不是放在该文件夹下,则可以通过WWW类来读取. 譬如读取xml的配置文件. /// < ...

  8. CSS3的高级特性

    CSS3对响应式设计非常有用:使用CSS3替代图片,在有带宽限制的网页中可有效减少http请求(从而使网页加载更快),并可使网页更灵活.更容易维护. 在开发CSS3时,要记住添加相关的浏览器私有前缀以 ...

  9. JMeter 响应文本乱码处理

    首次安装Jmeter后,会出现响应文本乱码现象,处理办法如下: (1)修改默认编码方式 Jmeter安装目录/bin/jmeter.properties中sampleresult.default.en ...

  10. Centos防火墙禁止ping和开启ping

    1.允许PING设置 iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp - ...