近年来,随着大数据越来越火,非关系型数据库的重要性被越来越多的人所认知,越来越多的开发者逐渐加入到NoSQL的阵营中。我们知道NoSQL是Not Only SQL的意思,既然如此,很多关系型数据库所支持的特性在非关系型数据中也是同样适用,比如复制集。

 
 
    MongoDB是支持数据复制的,它在复制集方面的优势与其他数据复制集一样,它通过将数据部署在多个不同的服务器上,防止因单机故障而造成数据的丢失,借助数据冗余来提高数据的可靠性和安全性。而且还可以通过复制技术构建分布式数据库,提高系统的访问性能和安全性。
 
    MongoDB的复制集模式是主从复制。在所有的数据库服务的机器中,只有一台机器担当Primary角色,其余的机器均是Secondaries。担当Primary角色的机器接收所有来自客户端的写(Write)操作请求,并完成该操作,从而保证了数据的一致性。担当Primary角色的机器还能够把来自客户端的读(Read)操作分配给其他机器(Secondaries),减轻主数据库服务器的压力。
 
    那么MongoDB是如何完成各机器上数据的复制的呢?
 
    原来,MongoDB的Primary数据库在每次对数据进行update操作时,都会将这些操作记录在oplog日志文件里。Secondaries数据库通过异步操作读取日志中的记录并在本地执行,生成数据来与Primary保持数据一致。
 
    当Primary数据库不可用时,复制集会从Secondaries中选择一个机器作为Primary机器。默认情况下,客户端都是从Primary机器读取数据,但是客户端也可以指定从哪台副本上读取数据。
 
    我们也可以配置一台仲裁机,仲裁并不管理复制集,它也不能成为Primary,它只是决定哪些副本集有权成为Primary。

mongodb replica set介绍的更多相关文章

  1. MongoDB 学习笔记(三) MongoDB (replica set) 集群配置

    MongoDB Replica Sets的结构类似于以集群,完全可以把他当成一个集群,因为他确实与集群实现的作用是一样的:如果其中一个节点出现故障,其他的节点会马上将业务接管过来.而无需停机操作 Mo ...

  2. mongodb replica set 和 nodejs中使用mongoose连接replica

    一.mongodb replication 介绍 官网上的第一句话就是Replication is the process of synchronizing data across multiple ...

  3. MongoDB Replica Set搭建集群

    MongoDB做集群,版本3.2官网推荐的集群方式Replica Set 准备服务器3台 两个standard节点(这两个节点直接可以互切primary secondary). 一个arbiter节点 ...

  4. 关于MongoDb Replica Set的故障转移集群——实战篇

    如果你还不了解Replica Set的相关理论,请猛戳传送门阅读笔者的上一篇博文. 因为Replica Set已经属于MongoDb的进阶应用,下文中关于MongoDb的基础知识笔者就不再赘述了,请参 ...

  5. MongoDb Replica Set中使用的地址

    Unable to connect to a member of the replica set matching the read preference Primary 今天尝试使用MongoDB ...

  6. mongodb replica set 配置高性能多服务器详解

    mongodb的多服务器配置,以前写过一篇文章,是master-slave模式的,请参考:详解mongodb 主从配置.master-slave模式,不能自动实现故障转移和恢复.所以推荐大家使用mon ...

  7. (1)解锁 MongoDB replica set核心姿势

    副本集Replica Set是一个术语,定义具有多节点的数据库集群,这些节点具有主从复制(master-slave replication) 且节点之间实现了自动故障转移. 这样的结构通常需要具有奇数 ...

  8. 关于MongoDb Replica Set的故障转移集群——理论篇

    自从10 gen用Replica Set取代Master/Slave方案后生活其实已经容易多了,但是真正实施起来还是会发现各种各样的小问题,如果不小心一样会栽跟头. 在跟Replica Set血拼几天 ...

  9. Mongodb常用命令介绍

    查看命令的方式: 1.在shell中运行db.listCommands() 2.在浏览器中访问管理员接口:http://ipaddress:28017/_commands 下面介绍在Mongodb中最 ...

随机推荐

  1. Android 边框圆角

    RelativeLayout 圆角实现:  drawable目录下面定义shape的xml文件: mall_header_rel_bg.xml <?xml version="1.0&q ...

  2. 在Windows上安装MySQL(免安装ZIP版)

    在 Windows 上安装MySQL(免安装ZIP版) 因为一些原因,重新安装了MySQL数据库,重装时习惯性使用最新版下载 此过程中发现MySQL 5.7.12 和MySQL 5.6的安装有些区别: ...

  3. ASP.NET Page执行顺序

    using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...

  4. Vue - 使用命令行搭建单页面应用

    使用命令行搭建单页面应用 我们来看一下最后完成的效果: 大纲 1. 下载 node, git, npm 2. 使用命令行安装一个项目 一. 下载工具 node , git  的下载大家可以去官网自行下 ...

  5. js返回上一页并刷新代码整理

    一:JS 重载页面,本地刷新,返回上一页 复制代码 代码如下: <a href="javascript:history.go(-1)">返回上一页</a> ...

  6. 解决yum命令时出现Error: xz compression not available

    由于CentOS6的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compression not available问题. ...

  7. 洛谷-语文成绩-[有奖]洛谷5月月赛:kkksc03的三大神器

    题目背景 Background语文考试结束了,成绩还是一如既往地有问题. 题目描述 Description语文老师总是写错成绩,所以当她修改成绩的时候,总是累得不行.她总是要一遍遍地给某些同学增加分数 ...

  8. MTK平台Android项目APK预置方案

    项目开发中,通常需要向系统中预置一些APK,这里简单介绍一下MTK平台预置APK的方法. 需要预置的apk可以放置在目录:vendor/mediate/${Project}/artifacts/out ...

  9. C++primer第三章标准库类型

    除第二章介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类型标准库. 本章将介绍标准库中的 vector.string 和 bitset 类型. string 类型支持长度可变的字符串 v ...

  10. 判断pc浏览器和手机浏览器方法

    一 //平台.设备和操作系统        var system = {            win: false,            mac: false,            xll: f ...