Replica Set准确讲不完全是集群,只是一个主从复制的加强版
概念如下:
primary:主节点客户端写操作发生在这里。
secondary:副本,可以负载读操作,通过复制primary的oplog来实现数据同步
arbiter:仲裁节点,作用是当primary宕掉之后从secondarys选择一个变成primary
环境准备:
linux系统版本:
$ cat /proc/version Linux version 2.6.32-358.el6.x86_64 (mockbuild@x86-022.build.eng.bos.redhat.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Tue Jan 29 11:47:41 EST 2013
三台服务器,详情如下:
192.168.38.17 --primary 192.168.38.18 --secondary 192.168.38.19 --arbiter
mongoDB版本:
mongodb-linux-x86_64-2.6.9
安装部署:
1.配置primary.conf,secondary.conf和arbiter.conf
#primary.conf:
#primary.conf dbpath=/home/admin/data/p logpath=/home/admin/log/primary.log pidfilepath=/home/admin/data/primary.pid directoryperdb=true logappend=true replSet=testrs bind_ip=192.168.38.17 port=27017 oplogSize=10000 fork=true noprealloc=true
#secondary.conf:
#secondary.conf dbpath=/home/admin/data/s logpath=/home/admin/log/secondary.log pidfilepath=/home/admin/data/secondary.pid directoryperdb=true logappend=true replSet=testrs bind_ip=192.168.38.18 port=27017 oplogSize=10000 fork=true noprealloc=true
#arbiter.conf:
dbpath=/home/admin/data/a logpath=/home/admin/log/arbiter.log pidfilepath/home/admin/data/arbiter.pid directoryperdb=true logappend=true replSet=testrs bind_ip=192.168.38.19 port=27017 oplogSize=10000 fork=true noprealloc=true
上述配置文件最好在每个集群上都放置,这样就能保证配置文件一致
2.启动
分别在不同的节点上加载不同的配置
192.168.38.17启动:
bin/mongod -f /home/admin/mongodb/primary.conf
192.168.38.18启动:
bin/mongod -f /home/admin/mongodb/secondary.conf
192.168.38.19启动:
bin/mongod -f /home/admin/mongodb/arbiter.conf
3.登陆系统配置各个节点
bin/mongo 192.168.38.17:27017
执行如下命令:
>use admin >cfg={ "_id": "testrs", "members": [ { "_id": 0, "host": "192.168.38.17:27017", "priority": 2 }, { "_id": 1, "host": "192.168.38.18:27017", "priority": 1 }, { "_id": 2, "host": "192.168.38.19:27017", "arbiterOnly": true } ] }; >rs.initiate(cfg)
此时配置已生效,可以通过命令查看相应的信息
4.查看目前各个节点的状态:
rs.status()
结果如下:
{ "set" : "testrs", "date" : ISODate("2015-04-03T09:02:29Z"), "myState" : 1, "members" : [ { "_id" : 0, "name" : "192.168.38.17:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 21104, "optime" : Timestamp(1428032802, 2), "optimeDate" : ISODate("2015-04-03T03:46:42Z"), "electionTime" : Timestamp(1428030689, 1), "electionDate" : ISODate("2015-04-03T03:11:29Z"), "self" : true }, { "_id" : 1, "name" : "192.168.38.18:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 21070, "optime" : Timestamp(1428032802, 2), "optimeDate" : ISODate("2015-04-03T03:46:42Z"), "lastHeartbeat" : ISODate("2015-04-03T09:02:27Z"), "lastHeartbeatRecv" : ISODate("2015-04-03T09:02:28Z"), "pingMs" : 0, "syncingTo" : "192.168.38.17:27017" }, { "_id" : 2, "name" : "192.168.38.19:27017", "health" : 1, "state" : 7, "stateStr" : "ARBITER", "uptime" : 21070, "lastHeartbeat" : ISODate("2015-04-03T09:02:29Z"), "lastHeartbeatRecv" : ISODate("2015-04-03T09:02:29Z"), "pingMs" : 0 } ], "ok" : 1 }
此时配置已经完成,kill主节点之后查看状态会自动切换
PS:默认情况下副本是不会负载读操作的,如果打算让副本负载一部分读操作那么可以参见另外一篇博客
相关推荐
k8s 安装 mongodb 分片(Sharding)+ 副本集(Replica Set)
Mongodb_集群分片部署 Mongodb_集群分片部署 Mongodb_集群分片部署
NULL 博文链接:https://star45.iteye.com/blog/2039957
小米科技 电商部门 Mongodb sharding Cluster with Replica Set 集群 文档
关于MongoDb的技术调研文档,详细的Replica Set集群安装手册!
mongo集群分片 使用分片和ReplicaSet设置集群MongoDB
mongodb的集群搭建方式主要有三种,主从,Replica set,sharding, 三种模式各有优劣,适用于不同的场合,副本应用最为广泛,主从现在用的较少,sharding最为完备。副本集是一组维护相同数据集的mongod服务,可提供...
mongodb 集群测试代码 3个sharding 3个config srv 1个mongos
mongodb的集群搭建方式主要有三种,主从模式,Replica set模式,sharding模式, 三种模式各有优劣,适用于不同的场合,属Replica set应用最为广泛,主从模式现在用的较少,sharding模式最为完备,但配置维护较为复杂 ...
使用C#开发,通过远程SSH的方式自动部署MongoDB副本集群,要求已安装MongoDB数据库,服务器是Linux操作系统
主要介绍了详解Java 连接MongoDB集群的几种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2.1什么是ReplicaSet2.2副本集的搭建 3.Sharding 3.1什么事Sharding3.2分片的搭建3.3片键的选择 参考: http://blog.csdn.net/luonanqin/article/details/8497860 http://blog.jobbole.com/68854/ ...
replica set多服务器主从,添加,删除节点,肯定会经常遇到的。下面详细说明一下,添加,删除节点的2种方法。
Replica Set 副本集:一个副本集就是一组 MongoDB 实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成 主节点(master):主节点接收所有写入操作。主节点将对其数据集所做的所有更改...
为何要分片 1.减少单机请求数,降低单机负载,提高总负载 ...为了实现每个Shard内部的auto-failover(自动故障切换),MongoDB官方建议每个Shard为一组Replica Set。 2.Config Server 为了将一个特定的collecti
小米电商Mongodb集群文档v1.0.1
从图中可以看到有四个组件:mongos、config server、shard、replica set。 mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个
带有Docker Compose的演示Mongo分片集群 PSS样式(小学-中学-中学) 需要PSA吗? 检查 警告(Windows和OS X) Windows和OS X上的默认Docker设置使用VirtualBox VM托管Docker守护程序。 不幸的是,VirtualBox用于在...
MongoDB ReplicaSet 场景 此方案使用在 Azure 上创建 ReplicaSet。 彩信帐户需要为了得到MMSGROUPID和MMSAPIKEY需要 打开common.sh文件并为其中的所有变量定义值 启动initAzure.sh命令 脚本完成后转到完成配置。 ...
MongoDB 的副本集(Replica Set)就是有自动故障恢复功能的 MongoDB 主从集群。由于 MongoDB 的主从复制功能不支持高可用,所以从 3.2 版本开始已经被废弃了,转而用副本集来代替实现数据复制的功能。一个副本集总会...