Update MongoDB_复制.md

This commit is contained in:
heibaiying 2020-03-23 16:24:42 +08:00 committed by GitHub
parent b02e1c0470
commit d3d5636733
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,10 +22,12 @@
### 1.1 复制功能
为保证数据安全实现高可用MongoDB 提供了复制功能,可以将主节点上的数据复制到多个从节点上,这样即便主节点异常,由于数据是以多副本的方式存储,仍然可以保证数据安全。一个标准的三节点副本集架构如下:
为保证数据安全实现高可用MongoDB 提供了复制功能,可以将主节点上的数据复制到多个从节点上,这样即便主节点出现异常,由于数据是以多副本的方式进行存储,仍然可以保证数据安全。一个标准的三节点副本集架构如下:
<div align="center"> <img src="../pictures/mongodb-复制.png"/> </div>
复制过程如下:
#### 1. 初始同步
在副本集初始化时,主节点的 mongod 进程会扫描当前节点上每个数据库中的每个集合,然后将这些数据发送给从节点,进行初始化的全量复制。
@ -69,7 +71,7 @@ MongoDB 的选举算法会尝试让高优先级的节点优先发起选举,从
- **ARBITER**ARBITER 状态的成员不复制数据或接受写入操作,仲裁者通常处于这一状态。
- **ROLLBACK**:如果成员正在进行数据回滚,它就处于 ROLLBACK 状态。
除了投票成员外那些持有副本集数据的副本并且可以接受来自客户端应用程序的读取操作但没有投票权的成员统称为非投票成员。出于网络通讯成本的考虑MongoDB 的副本集最多有 50 个节点成员默认情况下最多可包含7个投票成员。投票成员和非投票成员的要求如下
除了投票成员外那些持有副本集数据的副本并且可以接受来自客户端应用程序的读取操作但没有投票权的成员统称为非投票成员。出于网络通讯成本的考虑MongoDB 的副本集最多有 50 个节点(成员),默认情况下最多可包含 7 个投票成员。投票成员和非投票成员的要求如下:
+ 非投票成员的优先级 `members[n].priority` 必须为 0优先级为 0 的成员不能寻求选举,也不能成为主节点。
+ 优先级大于 0 的节点持有的票数 `members[n].votes` 不能为 0该参数默认值为 1可选值为 1 或 0。