Mongodb副本集
Replication:副本集
副本集可以将客户端的写操作分散到不同的服务器,可以用于灾难恢复,报告和备份。
副本集需要一个主服务器和一个备服务器,以及一个仲裁服务器。仲裁服务器决定将哪一个服务器作为主服务器,主服务器将接收所有的写操作。
可以根据特殊的目的对备服务器做配置:
1.防止备服务器被选为主服务,因此可以用这台服务器提供冷备。
2.防止客户端从这台备服务器读取数据,因此可以用来提供需要单独运行的服务。
3.保存历史快照用于确定的恢复过程,例如无意删除数据。
仲裁服务器:
仲裁服务器不保存任何数据,也不能作为主服务器提供服务。仲裁服务不能运行在主备服务器的任何一台。
PS:副本集只支持最多50台服务器,如果所需要的进程超过50台服务器,则需要使用master-slave。但是master-slave没有自动失效备援的能力。
主服务:
主服务接收客户端写操作,然后将写操作的记录保持在自己的oplog中,从服务使用这个日志来操作自己的数据,与主服务保持一致。
副本集中所有的应用都可以进行读的操作,但是默认的,会在主应用中读取数据。
当主应用不可用的时候,仲裁服务会选择一个备应用作为主应用来提供服务。
优先级为0的从服务将不会被些选为主应用提供服务,但是优先级为0的从服务也同样可以提供正常的服务。它们可以复制数据、进行读的操作、进行选举。这样的设置在多数据中心的开发中非常有用。
延时的副本集成员:
延时的副本集成员会保存比副本集数据库延时的数据,可以作为快照或者回滚点,应用于恢复各种认为错误,例如,数据更新失败、删除数据等。
延时成员的要求:1.必须是优先级为0的成员。2.必须是隐藏的成员。3.在仲裁权被设置为1的时候,拥有仲裁的权利。
Replica sets副本集部署详细过程:
1.安装启动mongodb,一台主服务器(192.168.0.83),一台从服务器(192.168.0.84),一台仲裁服务器(192.168.0.85)
2.登陆mongo实例,进入admin库,执行config命令:
>use admin
>config = {_id:”repset”,members:[
{_id:0,host:”192.168.0.83:27017”},
{_id:1,host:”192.168.0.84:27017”},
{_id:2,host:”192.168.0.85:27017”}
]
}
初始化副本集:
>rs.initiate(config)
3.查看replica sets的状态:
登陆任意一台mongo服务,查看状态,以及数据是否保持一致:
>rs.status();
4.查看后台日志,查看目前状态的PRIMARY和SECONDARY:
5.验证一致性:
在PRIMARY中对数据进行操作,在SECONDARY中查看数据是否一致。
6.PRIMARY和SECONDARY自动切换的验证:
a.停掉PRIMARY上的服务
>db.ShutdownServer()
b.查看日志,从库自动切换为主库,登陆新的主库,查看状态:
c.将之前的主库(192.168.0.83恢复),查看主从是否再次切换。
Mongodb副本集的更多相关文章
- MongoDB副本集的实现与维护实战
1.建立MongoDB副本集 现利用一台机器完成MongoDB副本集的建立 机器1:127.0.0.1:27017 机器2:127.0.0.1:27018 机器3:127.0.0.1:27019 在D ...
- MongoDB副本集学习(三):性能和优化相关
Read Preferences/读写分离 有时候为了考虑应用程序的性能或响应性,为了提高读取操作的吞吐率,一个常见的措施就是进行读写分离,MongoDB副本集对读写分离的支持是通过Read Pref ...
- MongoDB 副本集的原理、搭建、应用
概念: 在了解了这篇文章之后,可以进行该篇文章的说明和测试.MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组 ...
- MongoDB副本集学习(一):概述和环境搭建
MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...
- MongoDB副本集学习(二):基本测试与应用
简单副本集测试 这一节主要对上一节搭建的副本集做一些简单的测试. 我们首先进入primary节点(37017),并向test.test集合里插入10W条数据: . rs0:PRIMARY> ;i ...
- MongoDB副本集搭建及备份恢复
一.MongoDB副本集(repl set)介绍 早起版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主: 目前已经淘汰了ma ...
- java程序连接MongoDB副本集测试
三个节点有一个节点挂掉也不会影响应用程序客户端对整个副本集的读写! public class TestMongoDBReplSet { public static void main(String[] ...
- MongoDB副本集的常用操作及原理
本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操 ...
- MongoDB副本集的搭建
副本集是mongodb提供的一种高可用解决方案.相对于原来的主从复制,副本集能自动感知primary节点的下线,并提升其中一个Secondary作为Primary. 整个过程对业务透明,同时也大大降低 ...
- 创建mongodb副本集操作实例
一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...
随机推荐
- linux系统man命令用法和安装方法
Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可. Linux的man手册共有以下几个章节: 代號 代表內容 1 使用者在shell中可以操作的指令或可 ...
- html里文本编辑器如何制作呢?
初入it职场,文本编辑器真的让人捉摸不透.最终在前端姐姐帮助下弄好了↓ 先在头部写好编辑器的各种功能的总体模型 <script>var editor; KindEditor.ready(f ...
- java多线程学习-多个线程访问对象共享数据的方式
public class MulitThreadShareData { public static void main(String[] args) { final ShareData1 data1 ...
- MSVC 报错 unable to use inline in declaration get error C2054
晚上用cmake生成了一份lua-cjson的工程文件,msvc6的 编译时报错 后来再stackoverflow找到答案:unable to use inline in declaration ge ...
- SQL Server 存储过程自定义生成ID号
* FROM sys.tables WHERE name=N'EmployeeNo_Identity') DROP TABLE EmployeeNo_Identity GO CREATE TABLE ...
- 解析Tomcat内部结构和请求过程
Tomcat Tomcat的组织结构 由Server.xml的结构看Tomcat的体系结构 Tomca的两大组件:Connecter和Container Connecter组件 Container组件 ...
- kubernetes Ubuntu部署
规划节点 安装 ubuntu 14.04 LTS 准备password-less SSH登录 建立 ssh-key 证书,切换到root 账户,使用命令 ssh-keygen -t rsa Gener ...
- IE下Debug BHO
主要就是修改注册表键值使IE不创建多个进程:HKLM\Software\Microsoft\Internet Explorer\Main - TabProcGrowth 但需要注意的是这种情况下,vs ...
- P1147连续自然数和
洛谷1147 连续自然数和 题目描述 对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M. 例子:1998+1999+2000+2001+2002 = 10000,所 ...
- Json&Razor&控制器
JsonJson 属于JavaScript所以要书写在<script></script>中1.语法规则: 1.1:键值对 1.2:逗号分隔 1.3:花括号保存对象 1.4:方括 ...