MongoDB 副本集概述

一、为什么要使用副本集?

在了解副本集之前,我们先来聊聊副本集的对立面——单机服务器存在的问题

在学习MongoDB时,我们一般都只需要启动一个 Mongod服务,也就是只有一个MongoDB服务器。这样用来学习是没有问题,但用在生产环境上却是万万不可、风险极高的:如果单机服务器出现了崩溃、网络故障、或者硬件磁盘损坏等问题而导致不可访问了,我们的数据库将至少罢工一段时间,严重时可能永远都无法恢复。这将导致严重的生产事故!!!

主从复制和副本集都是为了解决这种问题而存在的,现如今已经很少使用主从复制,都是采用副本集的方式。本文后面会简单讲解一下副本集和主从复制的区别。

二、副本集是什么?有什么用?有哪些成员?

副本集是一组维护相同数据的Mongod服务。

副本集由多个服务组成,包含一个主服务器/主节点(primary)负责处理客户端请求,以及若干个副服务器/备份节点(secondary)负责保存主服务器的数据副本。如果主服务器崩溃了,副本集通过其主节点选举机制,可以自动将某个备份节点升级成为主节点。这样,就可以避免因主节点服务器不可访问而影响用户使用。(这种机制被称为为自动故障转移)。

副本集的成员包含一个主节点和若干个备份节点,有一只特殊的备份节点叫作“仲裁者”,仲裁者不会备份数据,只会在选举主节点时参与投票。(副本集的选举机制十分有趣,我会另写一篇博文来讲解)。

需要注意的是:

  1. 单台服务器可以执行的请求,主节点都可以执行(读、写、执行命令、创建索引等)。
  2. 备份节点不能执行写操作,默认也不能执行读操作。但是通过在备份节点上显式执行setSlaveOk命令之后,就可以从备份节点上读取数据。

副本集的成员关系如图:

三、副本集与主从复制的区别

主从复制和副本集最大的区别就是副本集没有固定的“主节点”;整个集群会选出一个“主节点”,当其挂
掉后,又在剩下的从节点中选中其他节点为“主节点”,副本集总有一个活跃点(主、primary)和一个或多
个备份节点(从、secondary)。

MongoDB副本集概述,副本集是什么?有什么用?相关推荐

  1. MongoDB副本集、分片集的伪分布式部署(保姆级教程)

    目录 1 集群架构(概念篇) 1.1 MongoDB核心组件 1.2 主从复制 1.3 副本集 1.4 分片集 2 集群搭建 2.1 部署副本集(伪分布式) 2.2 分片集部署(伪分布式) 2.3 副 ...

  2. Mongodb sharding转换一个副本集为分片集群

    2019独角兽企业重金招聘Python工程师标准>>> 1. 部署一个测试副本集 创建第一个副本集实例,名称为firstset: 1.1 创建副本集并且插入数据如下:/data/ex ...

  3. Mongodb本机部署副本集

    目录 知识储备 1.为什么我们需要搭建副本集模式呢? 2.副本集成员构架 应用目标 实践步骤 一.部署副本集 1. 创建数据目录 2. 启动副本集 3. 关闭MongoDB服务 4.登录mongod实 ...

  4. MongoDB 单节点升级为副本集高可用集群

    文章目录 项目背景 副本集架构 升级架构前注意事项 一.原单节点MongoDB配置信息 1.1 原配置文件 1.2 在原来配置文件增加副本集配置 二.新增节点信息 2.1 新增节点配置文件 2.2 启 ...

  5. 搭建高可用的MongoDB集群:MongoDB的配置与副本集

    在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...

  6. 搭建高可用的MongoDB集群(一):MongoDB的配置与副本集

    传统的关系数据库具有不错的性能及稳定性,同时,久经历史考验,许多优秀的数据库沉淀了下来,比如MySQL.然而随着数据体积的爆发性增长,数据类型的增多,许多传统关系数据库扩展难的特点也爆发了出来,NoS ...

  7. SpringBoot整合MongoDB以及副本集、分片集群的搭建

    整合springboot应用 说明: 这里主要以 springboot 应用为基础应用进行整合开发. Spring Data : Spring 数据框架 JPA .Redis.Elasticsearc ...

  8. 搭建mongodb分布式集群(分片集群+keyfile安全认证以及用户权限)

    介绍: 分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载.基本思想就是将集合切成小块,这些块 ...

  9. linux系统中MongoDB数据库安装及分片集群搭建

    史上最全的mongodb分片集群搭建,从介绍安装到集群搭建授权,你再也找不到比他更加详细的资料了,未经允许禁止转载!! 一.简介 MongoDB是一个便于开发和扩展设计的文档数据库,属于NoSQL数据 ...

最新文章

  1. Python的 if .else.elif语句详解
  2. OpenShift — 核心业务流程
  3. [Nginx]用Nginx实现与应用结合的訪问控制 - 防盗链
  4. 1847 奇怪的数学题(杜教筛 + Min_25 + 第二类斯特林数)
  5. php protected const,关于const:PHP类常量 – 公共,私有还是受保护?
  6. 基于CNN的增量学习论文的读后感
  7. 【Kafka】kafka 0.10.0 isr 不为空 但是不一致 导致获取消费组异常
  8. 反射机制在JDBC连接中的使用
  9. 磁盘及网络测试工具(iperf hdparm dd)
  10. spring中将静态代理修改为动态代理
  11. linux shell学习指南,shell脚本学习指南(shell脚本教程详细讲解) 电子扫描版
  12. 软件开发模型2:增量模型/螺旋模型/敏捷模型
  13. HashMap底层原理面试题
  14. 旋转变换(二)欧拉角
  15. Android5.1开机LOGO与开机动画
  16. WPF 鼠标滚轮对图片的缩放
  17. 二阶倒立摆matlab建模与仿真,二级倒立摆的建模与MATLAB仿真.pdf
  18. Problem K. Road Network - ACPC2015(求树的直径 dp)
  19. 所谓的我对大学的目标与期望!!!
  20. NBS BioCommand PLUS

热门文章

  1. 1、大家都是怎么看网工的,就这么看不起网络工程师吗?
  2. 「首席架构师推荐」最棒的的Flutter库,工具,教程,文章列表
  3. FPGA 驱动数码管动态显示(VerilogVivado)
  4. HR202湿敏电阻总结与程序整理
  5. 华为路由为端口配置IP地址
  6. 功率放大器模块是什么?哪里可以采购?
  7. screen ruler屏幕电子尺源码C# 手机与windows
  8. JDBC学习笔记-动力节点
  9. CCV入门教程(一)
  10. 用vue实现城市选择组件