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 及 ...
随机推荐
- C/C++ 名正则言顺
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50532701 名称所表达的含义极其丰富 ...
- Docker 管理工具的选择:Kubernetes 还是 Swarm?
[编者的话]选择Kubernetes 或者 Swarm 就像在将 Linux 桌面发行版的范围缩小到两个后选出一个最喜欢的.哪个更满足你的需要如何才是决定因素. [3 天烧脑式基于Docker的CI/ ...
- 兴趣爱好-QQ的本地共享
QQ这个本地共享简直了,不就实现了公网FTP的功能么?好方便啊,有啥文件共享给好友就直接放在本地就可以了,真好用
- WinServer-IIS-URL重写
WEB平台安装程序在Windows Server里面才有,在WIN7里面是没有的 然后在安装一个URL重写工具 然后再设置各种规则 来自为知笔记(Wiz)
- Webserver管理系列:4、WinPE
WinPE能够识别NTFS分区,使用WinPE能够备份/还原系统.能够重置用户password. 首先给大家看下怎样用WinPE重置password: 放入WinPE光盘-〉启动后-〉点開始菜单-〉程 ...
- CSS3可伸缩框属性,可用于等分显示子元素或按比例显示子元素的大小
使用方法跟Android的android:layout_weight属性类似.可类比Android中的使用方法.这样比較好记,因为眼下全部浏览器都不支持大部分的属性,所以全部的属性都须要加上Firef ...
- hdu1525 Euclid's Game , 基础博弈
http://acm.hdu.edu.cn/showproblem.php?pid=1525 题意: 两人博弈,给出两个数a和b, 较大数减去较小数的随意倍数.结果不能小于0,将两个数随意一个数减到0 ...
- world 替换+正则表达式命令
打开替换命令,点击“更多”,勾选上“通配符”,正则表达式才会起作用
- C#中的CSP(Communicating sequential processes)
说起Golang(后面统称为Go),就想到他的高并发特性,在深入一些就是 Goroutine.在大家被它优雅的语法和简洁的代码实现的高并发程序所折服时,其实C#/.NET也可以很容易的做到.今天我们来 ...
- HTML5与CSS3权威指南之CSS3学习记录
title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...