mongodb群集
项目目标:故障自动切换和自动修复成员节点,各个数据库之间数据完全一致。
项目描述:副本集没有固定主节点,是整个集群选举得出的一个主节点,当其不工作时变 更其他节点。最小的副本集也应该具备一个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群集的更多相关文章
- Tokumx 代替 Mongodb 群集部署
一, 配置环境: 系统: CentOS 7 x64 tokumx1 ip: 192.168.0.155 tokumx2 ip: 192.168.0.156 tokumx3 ip: 192.168.0. ...
- MongoDB 备份方法
翻译自 http://docs.mongodb.org/manual/core/backups/ 有以下几种方法来备份MongoDB群集: 通过复制底层数据文件来备份 通过mongodump来备份 通 ...
- mongodb 分片群集(sharding cluster)
实际环境架构 分别在3台机器运行一个mongod实例(称为mongod shard11,mongod shard12,mongod shard13)组织replica set1,作为cluster的s ...
- MongoDB 搭建可复制群集
一.概述 MongoDB复制群集支持节点故障自动切换,最小配置应包含3个节点,正常情况下应该至少包含两个数据节点,第三个节点可以是数据节点也可以是仲裁节点.仲裁节点的作用是当出现偶数节点导致无法仲裁的 ...
- MongoDB分片群集的部署(用心描述,详细易懂)!!
概念: MongoDB分片是使用多个服务器存储数据的方法,以支持巨大的数据存储和对数据进行存储 优势: 1.减少了每个分片需啊哟处理的请求数,群集可以提高自己的存储容量和吞吐量 2.减少了每个分片存储 ...
- 【MangoDB分片】配置mongodb分片群集(sharding cluster)
配置mongodb分片群集(sharding cluster) Sharding cluster介绍 这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monod ...
- 009.MongoDB分片群集部署
一 前期准备 1.1 组件说明 MongoDB分片群集包含以下组件: shard:每个分片是分片数据的子集.从MongoDB 3.6开始,必须将分片部署为副本集. mongos:mongos充当查询路 ...
- 008.MongoDB分片群集概念及原理
一 MongoDB分片介绍 1.1 分片 Mongodb另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足 ...
- MySQL Cluster 与 MongoDB 复制群集分片设计及原理
分布式数据库计算涉及到分布式事务.数据分布.数据收敛计算等等要求 分布式数据库能实现高安全.高性能.高可用等特征,当然也带来了高成本(固定成本及运营成本),我们通过MongoDB及MySQL Clus ...
随机推荐
- python 里面的单下划线与双下划线的区别
python 里面的单下划线与双下划线的区别 Python 用下划线作为变量前缀和后缀指定特殊变量. _xxx 不能用'from moduleimport *'导入 __xxx__ 系统定义名字 __ ...
- SSH 常用命令解析
SSH 是什么 SSH(全 称 Secure Shell)是一种加密的网络协议.使用该协议的数据将被加密,如果在传输中间数据泄漏,也可以确保没有人能读取出有用信息.要使用 SSH,目标机器应该安装 S ...
- 【JavaScript兼容】关于IE8及以下无法通过getElementsByClassName()方法获得元素的解决方法
try{ var a = document.getElementsByClassName("cla"); console.log(a); }catch(ex){ var array ...
- python 线程之 threading(四)
python 线程之 threading(三) http://www.cnblogs.com/someoneHan/p/6213100.html中对Event做了简单的介绍. 但是如果线程打算一遍一遍 ...
- inner join on 和 where = 的区别!
请看下面两条语句:select * from table1 inner join table2 on table1.id = table2.idselect * from table1,table2 ...
- JS冒泡排序(数组)
冒泡排序是把数组相邻的两个值进行比较,然后根据条件执行相应的命令 var arr = [0,4,8,5,2,7,1,3,6,9]; for(var s = 0;s<arr.length;s++) ...
- java-Lambda表达式
浏览以下内容前,请点击并阅读 声明 Lambda表达式与匿名类的作用类似,当实现的接口仅有一个方法时,使用lambda表达式能够减少代码的使用量. //此处定义一个仅含有一个抽象方法的功能接口 int ...
- ggplot2包的说明文档[分享]
- 【UE4游戏开发】安装UE4时报SU-PQR1603错误的解决方法
马三在开发过程中一直用的都是UE4.9版本(很久没有更新了.),因为功能都够用,所以也懒得去更新.这不最近UE4 发布了最新的4.14版本,本来想尝个鲜,试试新版的UE引擎怎么样,结果这一安装上就一直 ...
- innerHTML 与 innerText 的区别
innerHTML指的是从对象的起始位置到终止位置的全部内容,包括Html标签.innerText 指的是从起始位置到终止位置的内容,但它去除Html标签.同时,innerHTML 是所有浏览器都支持 ...