一文了解MongoDB复制集-问答-阿里云开发者社区-阿里云

开发者社区> 社区秘书> 正文

一文了解MongoDB复制集

2019-12-10 16:19:59 165 1

一文了解MongoDB复制集

取消 提交回答
全部回答(1)
  • 游客2q7uranxketok
    2021-02-09 10:52:43

    1、MongoDB复制是MongoDB自动将数据同步到多个服务器的过程,设置好策略之后免去了人工操作。

    2、MongoDB提供了两种复制部署方案:主从复制(Master-Slave)和副本集(ReplicaSets,在1.6版本及以上版本,推荐使用),两种方式的共同特点在于都是只在一个主节点上进行写操作,然后写入的数据会异步地同步到所有的从节点上。

    副本集工作原理 1、副本集中主要有三个角色:主节点、从节点、仲裁者。要组建副本集集群至少需要两个节点,主节点和从节点,主节点负责接受客户端的请求写入数据等操作,从节点负责复制主节点上的数据,也可以提供给客户端读取数据的服务。仲裁者则是辅助投票修改集群。

    2、副本集要完成数据复制及修复集群依赖于两个基本的机制:oplog(操作日志)和心跳(heartbeat).

    oplog(操作日志) oplog是一个固定集合,位于每个复制节点的local数据库里,记录了所有对数据的变更操作。oplog只记录改变了数据的操作(更新数据或插入数据),读取查询数据这些操作不记录。

    数据同步 在副本集中,每次客户端向主节点写入数据,就会自动向主节点的oplog里添加一个文档,其中包含了足够的信息来重现这次操作。当某个从节点注备更新自己时,首先:查看自己oplog里最后一条的时间戳;其次,查询主节点oplog里所有大于此时间戳的文档;最后,把那些文档应用到自己库里,并添加写操作文档到自己的oplog里。

    复制状态和本地数据库

    除了oplog操作之外,主从节点还会存放复制状态。记录下主从节点交互连接的状态,记录同步参数时间戳和选举情况。主从节点都会检查这些复制状态,以确保从节点能跟上主节点的数据更新。复制状态的文档记录在本地数据库local中。

    阻塞复制 当主节点oplog操作日志更新太快,就会阻塞主节点更新,让从节点先更新,以确保从节点能够跟上主节点的数据更新。

    心跳机制 副本集的心跳检测有助于发现故障进行自动选举和故障转移。默认情况下,每个副本集成员每两秒ping一次其他所有成员,这样,系统可以弄清楚自己的健康情况。

    如果哪个节点失去了响应,副本集就会去判断失去响应的是主节点还是从节点,如果是多个从节点中的某一个从节点,则副本集不做任何处理,只是等待从节点重新连接;如果是主节点挂掉,则副本集就会开始进行选举了,选出新的主节点。还有一种场景是副本集中主节点突然失去了其他大多数节点的心跳(多余一半时),主节点会把自己降级为从节点,从新选取。

    选举机制 第一阶段

    满足三个条件:

    1)、副本集中是否有其他节点已经是主节点了?

    2)、自己的数据是否比请求成为主节点的从节点上的数据更新?

    3)、副本集中其他节点的数据是否比请求成为主节点的从节点的数据更新?

    如果上面三个条件都是否定的,就会把票投给这个请求节点。

    第二阶段

    获得认可的请求节点会向其他节点发送一个确认的请求包,在30秒内所有都没有反对,就升级为主节点,若反对,从新选举,如果选举结果相同,可通过仲裁者决定选举谁。

    数据回滚

    0 0
相关问答

37

回答

ISV接入钉钉详细示例以及代码(JAVA版本)  --服务窗代码部分放出

蛋蛋oo蛋蛋 2016-08-13 16:22:00 54975浏览量 回答数 37

19

回答

[@倚贤][¥20]学习Java后端的疑惑

小江同志 2018-10-24 16:11:21 132222浏览量 回答数 19

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256853浏览量 回答数 38

23

回答

【精品问答合集】Redis热门问答

李博 bluemind 2019-05-29 16:36:15 126281浏览量 回答数 23

9

回答

HaoSQL,好用的SQL等数据库一键包发布!

梦丫头 2017-11-14 15:20:55 70746浏览量 回答数 9

30

回答

基础语言百问-Python

薯条酱 2017-05-17 18:01:13 64735浏览量 回答数 30

11

回答

【精品问答合集】MongoDB热门问答

李博 bluemind 2019-05-29 16:50:19 120859浏览量 回答数 11

14

回答

对象存储oss【问答合集】

我是管理员 2018-08-03 14:54:02 67359浏览量 回答数 14

80

回答

高性能本地SSD盘ECS正式商用啦!!(增加SSD申请地址和官方测试结果)

qilu 2014-12-01 17:15:26 52586浏览量 回答数 80

13

回答

【精品问答合集】Java热门问答

李博 bluemind 2019-05-29 16:00:45 124788浏览量 回答数 13
+关注
24
文章
833
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载