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副本集的更多相关文章

  1. MongoDB副本集的实现与维护实战

    1.建立MongoDB副本集 现利用一台机器完成MongoDB副本集的建立 机器1:127.0.0.1:27017 机器2:127.0.0.1:27018 机器3:127.0.0.1:27019 在D ...

  2. MongoDB副本集学习(三):性能和优化相关

    Read Preferences/读写分离 有时候为了考虑应用程序的性能或响应性,为了提高读取操作的吞吐率,一个常见的措施就是进行读写分离,MongoDB副本集对读写分离的支持是通过Read Pref ...

  3. MongoDB 副本集的原理、搭建、应用

    概念: 在了解了这篇文章之后,可以进行该篇文章的说明和测试.MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组 ...

  4. MongoDB副本集学习(一):概述和环境搭建

    MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...

  5. MongoDB副本集学习(二):基本测试与应用

    简单副本集测试 这一节主要对上一节搭建的副本集做一些简单的测试. 我们首先进入primary节点(37017),并向test.test集合里插入10W条数据: . rs0:PRIMARY> ;i ...

  6. MongoDB副本集搭建及备份恢复

    一.MongoDB副本集(repl set)介绍 早起版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主: 目前已经淘汰了ma ...

  7. java程序连接MongoDB副本集测试

    三个节点有一个节点挂掉也不会影响应用程序客户端对整个副本集的读写! public class TestMongoDBReplSet { public static void main(String[] ...

  8. MongoDB副本集的常用操作及原理

    本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操 ...

  9. MongoDB副本集的搭建

    副本集是mongodb提供的一种高可用解决方案.相对于原来的主从复制,副本集能自动感知primary节点的下线,并提升其中一个Secondary作为Primary. 整个过程对业务透明,同时也大大降低 ...

  10. 创建mongodb副本集操作实例

    一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...

随机推荐

  1. Linux编程获取本地IP

    #include <stdio.h> #include <sys/types.h> #include <ifaddrs.h> #include <netine ...

  2. php 下载图片 文件

    $file = dirname(dirname(__FILE__)) . $_GET['download']; //获取图片的绝对路径 header("Content-type: octet ...

  3. ELK日志管理之——logstash部署

    1.yum源配置 [root@localhost ~]# cat > /etc/yum.repos.d/logstash.repo <<EOF [logstash-1.5] name ...

  4. Python笔记——break的注意事项

    在python中有个控制流的语句:break 它是用来终止循环语句的,不管此时循环体进行到哪,只要碰到break都停止执行循环语句. 1.举例脚本: #!/usr/bin/env python for ...

  5. poj 3264 Balanced Lineup (RMQ)

    /******************************************************* 题目: Balanced Lineup(poj 3264) 链接: http://po ...

  6. 2016/9/21 leetcode 解题笔记 395.Longest Substring with At Least K Repeating Characters

    Find the length of the longest substring T of a given string (consists of lowercase letters only) su ...

  7. mui学习笔记

    一.页面刷新问题 1.父页面A跳转到子页面B,B页面修改数据后再跳回A页面,刷新A页面数据 (1).父页面A代码 window.addEventListener("pageflowrefre ...

  8. linux 搭建jenkins+创建maven工程JOB

    1.linux 安装jenkins 网上搜到这样安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redh ...

  9. [vb.net]简单多线程实例

    .Imports System .Imports System.Threading . . .Module Module1 . . Sub Main() . . Dim mythread1 As Th ...

  10. <大学祭>

    我将20岁青涩的身影留在教室前的花坛边,远赴他乡,这些年过去了,他总是对我说别忘记我的梦: 我将那个沉静娇小的眼镜女孩印象留在第一排靠窗的座位,带着淡淡离愁而去,这些年过去了,她对我说,永恒的爱是心中 ...