乐趣区

关于后端:MongoDB-官方文档笔记之复制-Replication

正本集 Replica Set

一组保护雷同数据的 mongod 过程,正本集提供了冗余和高可用。

一个主节点 Primary,接管所有写操作

多个从节点 Secondary,承受所有读操作

一个仲裁节点 Arbiter,不持有数据,只在选举时投票

倡议起码配置一主两从三成员正本集,但如果只有一主一从两个节点,则能够退出一个 仲裁节点。仲裁节点参加选举,但不持有数据。

正本集中最多 50 个成员,但仅能有 7 个可投票成员。

正本集中的主从节点

主节点会将所有写操作记录到日志中,即 oplog,从节点复制主节点的 oplog,并将这些操作利用在从节点上。主节点挂掉之后,从节点会通过选举产生新的主节点。

主从节点关系:

从节点间关系:

仲裁节点:

专门为投票存在的,一个仲裁节点一票。

正本集中的日志 Oplog

主节点上的更新日志 oplog,会异步同步给从节点。

日志大小

启动时可指定日志大小,如未指定则采纳默认配置大小。

https://docs.mongoing.com/replication/replica-set-oplog#ri-zh…

慢日志

oplog 中执行较慢的操作,会被记录到诊断日志中,相似 MySQL 的慢日志

复制提早

复制提早是指将写操作从主节点拷贝到从节点上的过程。

故障转移

如果主节点与集群中其余节点通信超时,超过 electionTimeoutMillis 配置的工夫,从节点会产生选举。

跨数据中心的状况:https://www.pdai.tech/md/db/nosql-mongo/mongo-z-rep.html# 跨数据中心

事务

反对多文档事务,在事务提交之前批改对事务外不可见。

数据同步

初始化同步

从正本集中的一节点复制所有数据到另外一个成员。可通过参数 initialSyncSourceReadPreference 指定优先的初始化同步源。同步源抉择:https://docs.mongoing.com/replication/replica-set-data-synchr…

具体过程:

  1. 克隆出所有除 local 库以外的数据库。
  2. 依据 oplog,对数据集利用所有的更改

一般复制

在初始化复制实现之后,从节点会再同步源复制 oplog,异步的利用这些操作。也反对多线程并发复制。

本文由 mdnice 多平台公布

退出移动版