1.同步
用于多台服务器中同步数据 使用操作日志oplog实现 oplog为一个固定集合
每个数据成员的oplog日志相同 这样每个成员都可以作为同步源提供为其他成员使用
如果于丹某个操作失败的情况,那么备份节点就会停止从当前数据源复制数据。
特点:1.链式复制 2.将oplog中的操作执行多次 与只执行一次的效果是一样的。
2.初始化同步
(1)准备工作:选择一个成员作为同步源,在local.me中为自己创建一个标识符,删除所有存在的数据库,以一个全新的状态进行同步。
(2)克隆数据。通常最为耗时
(3)oplog同步第一步,所有操作记录在oplog中。
(4)oplog同步第二步,将第一个oplog同步中的操作记录下来
(5)创建索引
(6)同步在创建索引时新写入的数据
(7)初始化同步完成,进入普通同步状态
3.处理陈旧数据
如果备份节点远远落后于同步源当前的操作,那么就说这个备份节点就是陈旧的。
为了避免陈旧备份节点的出现,让主节点使用比较大的oplog日志很重要。
4.心跳
让主节点知道自己是否满足集合“大多数”的条件。如果主节点不在得到“大多数”服务器的支持,他就会退位,编程备份节点——主要功能
5.回滚
对比oplog日志,将相同点之后的操作保存在数据目录下的rollback目录下,在从主节点将此操作复制。