Mongodb集群之副本集
上篇咱们遗留了几个问题
1主节点是否能自己主动切换连接?
眼下须要手动切换
2主节点读写压力过大怎样解决
3从节点每一个上面的数据都是对数据库全量拷贝,从节点压力会不会过大
4数据压力达到机器支撑不了时候是否能自己主动扩展?
Nosql的产生是为了解决大数据量。高扩展,高性能,灵活数据模型。高可用性。可是光通过主从模型的架构是远远达不到上面几点的。因此。mongodb设计了副本集和分片的功能。咱们以下就来说说副本集
mongodb官方已经不建议使用主从模式,而是副本集进行取代。
IMPORTANT
Replica sets replace master-slave replication
for most use cases. If possible, use replicasets rather than master-slave replication for all new production deployments.This documentation remains to support legacy deployments and for archivalpurposes only.
来自 <http://docs.mongodb.org/master/core/master-slave/>
什么是副本集
副本集合(ReplicaSets)。是一个基于主/从复制机制的复制功能。但添加了自己主动故障转移和恢复特性。一个集群最多能够支持7个server。而且随意节点都能够是主节点。
全部的写操作都被分发到主节点。而读操作能够在不论什么节点上进行。
从图中能够发现,client连接到整个副本集,不关系详细哪一台server是否宕机。主server负责整个副本集的读写。
副本集定期同步数据。一旦主节点挂了。副本节点就会选举一个新主机作为主节点。
坏掉的节点修好后会自己主动扩充为副本节点。
怎样配置副本集
在一台机器上创建三个文件用户存放三台数据库,之后分别配置三台数据库,使他们的replset(复制集分别形成闭环)配置启动数据库。
配置启动參数
启动配置文件
mongoA.bat
mongod --configa.conf
mongoB.bat
mongod --configb.conf
mongodbC.bat
Mongod--config c.conf
登录数据库
ashell.bat
mongo 127.0.0.1:9000
b.shell.bat
mongo 127.0.0.1:9001
c.shell.bat
mongo 127.0.0.1:9002
初始化副本集
在三台机器上随意登陆一台机器输入例如以下命名回车
use admin
db.runCommand({"replSetInitiate":{
"_id":'child',
"members":[
{"_id":1,"host":"127.0.0.1:9000"},
{"_id":2,"host":"127.0.0.1:9001"},
{"_id":3,"host":"127.0.0.1:9002",},
]
}
})
查看集群状态
child:SECONDARY> rs.status()
{
"set" : "child",
"date" : ISODate("2015-08-16T07:43:36Z"),
"myState" : 2,
"syncingTo" : "127.0.0.1:9002",
"members" : [
{
"_id" : 1,
"name" : "127.0.0.1:9000",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 182,
"optime" : Timestamp(1439170908, 1),
"optimeDate" : ISODate("2015-08-10T01:41:48Z"),
"infoMessage" : "syncing to: 127.0.0.1:9002",
"self" : true
},
{
"_id" : 2,
"name" : "127.0.0.1:9001",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 7,
"optime" : Timestamp(1439170908, 1),
"optimeDate" : ISODate("2015-08-10T01:41:48Z"),
"lastHeartbeat" : ISODate("2015-08-16T07:43:36Z"),
"lastHeartbeatRecv" : ISODate("2015-08-16T07:43:35Z"),
"pingMs" : 2,
"lastHeartbeatMessage" : "syncing to: 127.0.0.1:9002",
"syncingTo" : "127.0.0.1:9002"
},
{
"_id" : 3,
"name" : "127.0.0.1:9002",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 8,
"optime" : Timestamp(1439170908, 1),
"optimeDate" : ISODate("2015-08-10T01:41:48Z"),
"lastHeartbeat" : ISODate("2015-08-16T07:43:35Z"),
"lastHeartbeatRecv" : ISODate("2015-08-16T07:43:36Z"),
"pingMs" : 772,
"electionTime" : Timestamp(1439711010, 1),
"electionDate" : ISODate("2015-08-16T07:43:30Z")
}
],
"ok" : 1 }
整个部分创建成功
副本集数据库測试
启动三个数据库查看仅仅有一个活跃节点其它为副本节点
停掉活跃点,我们查看活跃点
child:PRIMARY>show dbs
2015-08-16T15:51:21.667+0800Socket recv() errno:10053你的主机中的软件中止了一
个已建立的连接。127.0.0.1:9002
2015-08-16T15:51:21.669+0800SocketException: remote: 127.0.0.1:9002 error: 9001
再次连接数据库发现 活跃点已转移到
9000port
再将9002数据库开启
查看状态 9002数据库为备份点
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
以上说明我们的副本集已经搭建完毕
小结:
副本集解攻克了我们的故障转义功能。可是我们还是有一些问题 。从节点每一个上面的数据都是对数据库全量拷贝。从节点压力会不会过大?
数据压力大到机器支撑不了的时候是否能做到自己主动扩展?
Mongodb集群之副本集的更多相关文章
- 搭建mongodb集群(副本集+分片)
搭建mongodb集群(副本集+分片) 转载自:http://blog.csdn.net/bluejoe2000/article/details/41323051 完整的搭建mongodb集群(副本集 ...
- MongoDB集群搭建-副本集
MongoDB集群搭建-副本集 概念性的知识,可以参考本人博客地址: 一.Master-Slave方案: 主从: 二.Replica Set方案: 副本集: 步骤:(只要按步骤操作,100%成功) 1 ...
- centos7下安装部署mongodb集群(副本集模式)
环境需求:Mongodb集群有三种模式: Replica Set, Sharding,Master-Slaver. 这里部署的是Replica Set模式. 测试环境: 这里副本集(Replica ...
- mongodb集群配置副本集
测试环境 操作系统:CentOS 7.2 最小化安装 主服务器IP地址:192.168.197.21 mongo01 从服务器IP地址:192.168.197.22 mongo02 从服务器IP地址: ...
- MongoDB健壮集群——用副本集做分片
1. MongoDB分片+副本集 健壮的集群方案 多个配置服务器 多个mongos服务器 每个片都是副本集 正确设置w 架构图 说明: 1. 此实验环境在一台机器上通过不同port和dbp ...
- MongoDB学习笔记~Mongo集群和副本集
回到目录 一些概念 对于Mongo在数据容灾上,推荐的模式是使用副本集模式,它有一个对外的主服务器Primary,还有N个副本服务器Secondary(N>=1,当N=1时,需要有一台仲裁服务器 ...
- MongoDB集群-主从复制(副本集)、failover
1.概念 主从复制的目的:数据冗余.备份.读写分离 主从方式:一主一从(不推荐,只能实现复制,主节点挂掉且未重新启动的时候,无法提升从节点为master),一主一从一裁判,一主多从 复制方式:主节点记 ...
- mongodb集群配置分片集群
测试环境 操作系统:CentOS 7.2 最小化安装 主服务器IP地址:192.168.197.21 mongo01 从服务器IP地址:192.168.197.22 mongo02 从服务器IP地址: ...
- MongoDB 带访问控制的副本集部署
当你需要用到一个MongoDB 副本集集群,用于开发测试时, 可以通过下面的步骤简单完成. 版本及环境 MongoDB4.4 Centos6.5 一. 下载安装 MongoDB Server 及 ...
随机推荐
- Mysql如何避免全表扫描的方法
在以下几种条件下,MySQL就会做全表扫描: 1>数据表是在太小了,做一次全表扫描比做索引键的查找来得快多了.当表的记录总数小于10且记录长度比较短时通常这么做. 2>没有合适用于 ON ...
- 查看系统的I/O使用iostat命令而使用iotop能够依据I/O统计信息排序,追踪到详细的进程
当看到I/O等待时间所占CPU时间的比重非常高的时候,首先要检查的就是机器是否正在大量使用交换空间,由于硬盘操作的速度远远低于RAM.所以当系统内存耗尽,開始使用交换空间的时候.系统的性能会受到严重影 ...
- Android Material Design-Getting Started(入门)-(一)
转载请注明出处:http://blog.csdn.net/bbld_/article/details/40400343 翻译自:http://developer.android.com/trainin ...
- 大话设计模式C++实现-第17章-适配器模式
一.UML图 关键词:Client须要Request()函数,Adaptee提供的是SpecificRequest()函数,Adapter提供一个Request()函数将Adaptee和Specifi ...
- java中log日志的使用(完全版)
Commons_logging包 Apache通用日志包 他为Log4JLogger:NoOpLog:LogKitLogger:Jdk14Logger:AvalonLogger提供了一共通用的接口进行 ...
- python+caffe训练自己的图片数据流程
1. 准备自己的图片数据 选用部分的Caltech数据库作为训练和测试样本.Caltech是加州理工学院的图像数据库,包含Caltech101和Caltech256两个数据集.该数据集是由Fei-Fe ...
- 5分钟学会 CSS Grid 布局
欢迎加入前端交流群交流知识&&获取视频资料:749539640 这是一篇快速介绍网站未来布局的文章. Grid 布局是网站设计的基础,CSS Grid 是创建网格布局最强大和最简单的工 ...
- NOIP 2012 T2 国王游戏 (贪心+高精)
思路: 呃呃网上那么多题解写得都不错-.. 就是高精 巨坑... 这里展出的是任氏高精(纯自己yy滴) //By SiriusRen #include <cstdio> #include ...
- vs2015汉化
VS2015汉化 VS2015安装打开后默认是英文的,将它改成中文的VS 1.安装下载好的语言包进行安装 2.正在安装 3.安装完成后关闭 4.打开VS2015默认不是中文的,点击Tools--> ...
- SpringMVC(三) RESTful架构和文件上传下载
RESTful架构 REST全名为:Representational State Transfer.资源表现层状态转化.是目前最流行的一种互联网软件架构. 它结构清晰.符合标准.易于理解.扩展方便,所 ...