一、副本集相关概念
1.副本集
有自动故障恢复功能的主从集群,至少需要两个节点: 一主一从、一主多从
2.副本集特征
- N 个节点的集群
- 任何节点可作为主节点
- 所有写入操作都在主节点上
- 自动故障转移
- 自动恢复
3.副本集节点类型
参数 | 说明 |
---|---|
Primary | 主节点 可读写,唯一可以进行写操作的节点,由集群自行选举出来 |
Secondary | 正常情况下,Seconary会参与Primary选举(自身也可能会被选为Primary),并从Primary同步最新写入的数据,以保证与Primary存储相同的数据。Secondary可以提供读服务,增加Secondary节点可以提供副本集的读服务能力,提升副本集的可用性。 |
Arbiter | 只参与投票,不能被选为Primary,并且不从Primary同步数据。非常轻量级的服务,当复制集成员为偶数时,最好加入一个Arbiter节点,以提升复制集可用性。 |
Priority0 | Priority0节点的选举优先级为0,不会被选举为Primary,且不能发起选举。 |
Vote0 | 副本集成员最多50个,参与Primary选举投票的成员最多7个,其他成员(Vote0)的vote属性必须设置为0,即不参与投票。 |
Hidden | Hidden节点不能被选为主(Priority为0),并且对Driver不可见。因Hidden节点不会接受Driver的请求,可使用Hidden节点做一些数据备份、离线计算的任务,不会影响复制集的服务。 |
Delayed | Delayed节点必须是Hidden节点,并且其数据落后与Primary一段时间(可配置,比如1个小时)。因Delayed节点的数据比Primary落后一段时间,当错误或者无效的数据写入Primary时,可通过Delayed节点来做数据恢复。 |
4.复制
将数据同步在多个服务器的过程(在多个服务器上存储数据副本)
5.复制优点
- 提供了数据的冗余备份,
- 提高了数据的可用性,
- 保证数据的安全性,
- 允许从硬件故障和服务中断中恢复数据,
- 无需停机维护(如备份,重建索引,压缩)
- 分布式读取数据