天天看点

MongoDB-复制集同步规则

初始化同步

  • 将一个新的节点加入到复制集中时, 就需要进行初始化同步
  • 初始化同步会先清空自己所有的内容, 保证将来自己和主节点一模一样
  • 初始化同步会将主节点中现有所有的 '数据库', '集合', '文档', '索引' 全部拷贝过来
  • 但是在拷贝的过程中主节点仍然可能会做一些其它操作, 新增一些其它的数据等

!> 所以仅仅做一次大型的拷贝是不能保证副节点和主节点一模一样的

同步写库记录

  • 每个节点中都有一个 local 数据库, 这个数据库中有一个 oplog 的集合,这个集合就是专门用来保存数据库的操作记录的(写库记录)
  • 做完初始化同步之后, 副节点就会定期从主节点中拷贝写库记录, 将写库记录保存到自己的 local 数据库中, 然后执行写库记录中的操作, 从而使得自己的内容和主节点的内容保持高度一致

!> 写库记录是可以被多次应用的, 但是多次应用和一次应用的效果是一样的, 也就是有效的防止了多次应用造成的主节点和副节点内容不一致问题