MongoDB数据库从入门到精通系列之七:组成副本集
- 一、同步
- 二、初始化同步
- 三、复制
- 四、处理过时数据
- 五、心跳
- 六、成员状态
- 七、选举
- 八、回滚
- 九、当回滚失败时
主要介绍副本集的各个部分是如何组织在一起的,包括:
- 副本集成员如何复制新数据
- 如何让新成员开始工作
- 选举是如何进行的
- 可能出现的服务器端和网络故障场景
一、同步
复制:
操作日志oplog:
- MongoDB实现此功能的方式是保存操作日志(oplog),包含了主节点执行的每一次写操作。
- oplog是存在于主节点local数据库中的一个固定集合。从节点通过查询此集合以获取需要复制的操作。
从节点:
- 每个从节点都维护着自己的oplog,用来记录从主节点复制的每个操作。
- 这使得每个成员都可以被用作其他成员的同步源,从节点从同步源中获取操作,将其应用到自己的数据集上,然后再写入oplog中。
- 如果应用某个操作失败(只有在基础数据已损坏或数据与主节点不一致时才会发生这种情况