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 及 ...
随机推荐
- linux文件与用户和群组
文件基本属性 在图片中alogrithm的文件属性为drwxrwxr-x,其中d代表此文件为目录. 后面rwx,rwx,r-x分别代表文件所属者(ower),组(group),其他用户(other)的 ...
- OS - 线程和进程的差别
进程是资源分配的基本单位,又是调度执行的基本单位.比如.用户执行自己的程序,系统就创建一个进程.并为它分配资源,包含各种表.内存空间.磁盘空间.I/O设备等. 然后.把该进程放入进程的就绪队列.进程调 ...
- HDUOj 看病要排队 优先队列的使用 题目1873
STL优先队列的具体描写叙述 http://blog.csdn.net/yueloveme/article/details/47106639 题目地址:http://acm.hdu.edu.cn/s ...
- "浪潮杯"第六届ACM山东省省赛山科场总结
从空间拷过来的.尽管已经过去一个月了.记忆犹新 也算是又一次拾起这个blog Just begin 看着一群群大牛还有队友男神的省赛总结都出了 我最终也耐不住寂寞 来做个流水账抒抒情好了 第一次省赛 ...
- ubuntu12.04下CKermit与开发板交互环境搭建
CKermit蛮好的一个调试工具!就像在windows下的telnet,但是还是折腾了一下,现在看来,非常容易,其实我主要是在开发板为正常工作的情况下,以为是CKermit的问题,其实是我开发板开机设 ...
- [codeforces 859 E] Desk Disorder 解题报告 (并查集+思维)
题目链接:http://codeforces.com/problemset/problem/859/E 题目大意: 有$n$个人,$2n$个座位. 给出这$n$个人初始的座位,和他们想坐的座位. 每个 ...
- vue组件样式添加scoped属性之后,无法被父组件修改。或者无法在本组件修改element UI样式
在vue开发中,需要使用scoped属性避免样式的全局干扰,但是这样在父组件中是无法被修改的,不仅如此如果项目中用了UI框架比如element Ui,这个时候在本组件也无法修改样式,因为权重问题.但是 ...
- Server Tomcat v7.0 Server at localhost failed to start.解决办法(图文详解)
问题描述 Server Tomcat v7.0 Server at localhost failed to start. 解决办法 把你工作空间文件夹下的如下路径打开: <workspace-d ...
- (转载) 使用DrawerLayout和NavigationView从右侧出现
使用DrawerLayout和NavigationView从右侧出现 2016-07-21 17:53 957人阅读 评论(0) 收藏 举报 分类: android(9) 版权声明:本文为博主原创 ...
- 【摘录】JDBC Master Slave(JDBC方式的JMS集群)
JDBC Master Slave First supported in ActiveMQ version 4.1 If you are using pure JDBC and not using t ...