管理维护Replica Sets
1、读写分离
有一些第三方的工具,提供了一些可以让数据库进行读写分离的工具。我们现在是否有一个疑问,从库要是能进行查询就更好了,这样可以分担主库的大量的查询请求。
1、 先向主库中插入一条测试数据

2、 在从库进行查询等操作

当查询时报错了,说明是个从库且不能执行查询的操作
3、 让从库可以读,分担主库的压力

看来我们要是执行db.getMongo().setSlaveOk(), 我们就可查询从库了。
2、故障转移
复制集比传统的Master-Slave 有改进的地方就是他可以进行故障的自动转移,如果我们停掉复制集中的一个成员,那么剩余成员会再自动选举出一个成员,做为主库,例如:我们将28010 这个主库停掉,然后再看一下复制集的状态。
1、杀掉28010 端口的MongoDB

2、 查看复制集状态


可以看到28010 这个端口的MongoDB 出现了异常,而系统自动选举了28012 这个端口为主,所以这样的故障处理机制,能将系统的稳定性大大提高。
3、增减节点
MongoDB Replica Sets 不仅提供高可用性的解决方案,它也同时提供负载均衡的解决方案,增减Replica Sets 节点在实际应用中非常普遍,例如当应用的读压力暴增时,3 台节点的环境已不能满足需求,那么就需要增加一些节点将压力平均分配一下;当应用的压力小时,可以减少一些节点来减少硬件资源的成本;总之这是一个长期且持续的工作。
3、1 增加节点
官方给我们提了2 个方案用于增加节点,一种是通过oplog 来增加节点,一种是通过数据库快照(--fastsync)和oplog 来增加节点,下面将分别介绍。
(1)通过oplog增加节点
①、配置并启动新节点,启用28013这个端口给新的节点

②、添加此新节点到现有的Replica Sets

③、查看Replica Sets我们可以清晰的看到内部是如何添加28013这个新节点的.


④、验证数据已经同步过来了

通过数据库快照(--fastsync)和oplog增加节点
通过oplog 直接进行增加节点操作简单且无需人工干预过多,但oplog 是capped collection,采用循环的方式进行日志处理,所以采用oplog 的方式进行增加节点,有可能导致数据的不一致,因为日志中存储的信息有可能已经刷新过了。不过没关系,我们可以通过数据库快照(--fastsync)和oplog 结合的方式来增加节点,这种方式的操作流程是,先取某一个复制集成员的物理文件来做为初始化数据,然后剩余的部分用oplog 日志来追,最终达到数据一致性.
①、取某一个复制集成员的物理文件来做为初始化数据

②、在取完物理文件后,在c1集中插入一条新文档,用于最后验证此更新也同步了

③、启用28014这个端口给新的节点

④、添加28014节点

⑤、验证数据已经同步过来了

3、2 减少节点
下面将刚刚添加新节点28014 从复制集中去除掉,只需执行rs.remove 指令就可以了,具体如下:

查看复制集状态,可以看到现在只有28010、28011、28012 这三个成员,原来的28013 和28014 都成功去除了。
管理维护Replica Sets的更多相关文章
- 第39章:MongoDB-集群--Replica Sets(副本集)---副本集基本原理
①操作日志oplog Oplog是主节点的local数据库中的一个固定集合,按顺序记录了主节点的每一次写操作,MongoDB的复制功能是使用oplog来实现的,备份节点通过查询这个集合就可以知道需要进 ...
- 部署Replica Sets及查看相关配置
MongoDB 支持在多个机器中通过异步复制达到故障转移和实现冗余.多机器中同一时刻只有一台是用于写操作.正是由于这个情况,为MongoDB 提供了数据一致性的保障.担当Primary 角色的机器能把 ...
- MongoDB整理笔记のReplica Sets
MongoDB支持在多个机器中通过异步复制达到故障转移和实现冗余.多机器中同一时刻只有一台机器是用于写操作,正因为如此,MongoDB提供了数据一致性的保障.而担当primary角色的机器,可以把读的 ...
- kubernetes 1.3管中窥豹- RS(Replica Sets):the next-generation Replication Controller
前言 kubernates 1.3出了几个新的概念,其中包括deployments,Replica Sets,并且官网称之为是the next-generation Replication Contr ...
- MongoDB 维护Replica Set
在每个MongoDB(版本 3.2.9) Instance中,都有一个本地数据库(local),用于存储 Replication 进程的信息和本地数据.local 数据库的特性是:位于local数据库 ...
- 利用Mongodb的复制集搭建高可用分片,Replica Sets + Sharding的搭建过程
参考资料 reference: http://mongodb.blog.51cto.com/1071559/740131 http://docs.mongodb.org/manual/tutori ...
- 转 Warning:MongoDB Replica Sets配置注意事项
我们知道,MongoDB不提供单机的数据安全性,取而代之的是提供了Replica Sets的高可用方案.官方文档中提到的案例是三个节点组成的Replica Sets,这样在其中任何一个节点宕机后都会自 ...
- Simple Automated Backups for MongoDB Replica Sets
There are a bunch of different methods you can use to back up your MongoDB data, but if you want to ...
- Mongo之架构部署(Replica Sets+Sharding)
一.环境 要构建一个 MongoDB Sharding Cluster,需要三种角色: •Shard Server: mongod 实例,用于存储实际的数据块. •Config Server: mon ...
随机推荐
- Hadoop 文本分类 终于跑通了
Training 入口 package org.wordCount; import java.util.ArrayList; import java.util.List; import org.apa ...
- Qt5:窗口背景色的设置
在Qt中,设置窗口背景色有多种方法,如通过setStyleSheet 和 调色板 setPalette 等 下面是setPalette 方法 QPalette pale = palette(); ...
- android KeyEvent for dot "."
android连接了4x4的物理按键,需要映射".". 在linux驱动层注册了按键KEY_DOT, 写android的app的时候却没有对应的宏KEYCODE_DOT.只有KEY ...
- Python3基础 list() 将一个字符串转换成列表
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- VS下载地址
http://www.iplaysoft.com/vs2015.html Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品.Visual Studio ...
- JS和CSS加载(渲染)机制不同
一.结论 CSS可以在页面加载完成后随时渲染.举个例子:通过js给某个元素加一个id或者css,只要这个id或者css有对应的样式,此元素的样式就会自动生效. JS不可以在页面加载完成后生效.最明显的 ...
- Android4.0图库Gallery2代码分析(二) 数据管理和数据加载
Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 2012-09-07 11:19 8152人阅读 评论(12) 收藏 举报 代码分析android相册优化工作 Androi ...
- vim 配置快捷以使复制可用
"设置快捷以使用xshell的复制 let g_copy_mode = function! CopyToggle() let g:g_copy_mode = set mouse=c set ...
- vector 的用法(c++)
vertor是向量类型,它是一个对象实体.它作为容器可以容纳不同的实体,如int,flout,double,还有类类型. 1.包含头文件 #include <vector> 2.声明:ve ...
- jQuery方式事件冒泡的2个方法
方式1:通过 event.stopPropagation(); $("div").click(function (event) { slide.call(this); event ...