MongoDB 初始化数据同步

MongoDB初始化数据同步:

副本集中的成员启动之后,就会检查自身的状态,确定是否可以从某个成员那里进行同步。如果不行的话,尝试从其他成员那里进行完整的数据复制。

这个过程就是初始化同步(initial syncing),这几个步骤可以从mongod日志查看。


1、首先,这个成员会做一些记录前的准备工作:选择一个成员作为同步源,在local.me中为自己创建一个标识符,删除所有已存在的数据库,以一个全新的状态进行复制。

在这个过程中,所有现有的数据都会被删除。应该只在不需要保留现有数据的情况下做初始化同步,因为mongod会首先将现有数据删除。

2、然后是克隆(cloning),就是将同步源的所有记录全部复制到本地。通常是最耗时的。

3、然后就进入oplogt同步的第一步,克隆过程中所有的操作都会记录到oplog中。如果有文档在克隆过程中被移动了,就可能会被遗漏,导致没有被克隆,对于这样的文档可能

需要重新克隆

4、接下来是oplog同步过程的第二步,用于将第一个oplogt同步中的操作记录下来

5、到目前为止,本地的数据应该与主节点的某个时间点的数据完全一致,可以创建索引,如果集合比较大,创建索引也会比较耗时

6、如果当前节点的数据仍远远落后于同步源,那么oplog同步过程的最后一步就是将创建索引期间的所有操作全部记录下来,防止该成员成为备份节点

7、现在,当前成员初始化完成,切换到普通同步状态,这时当前成员就可以成为备份节点

  replset initial  sync done

  replset syncing 

  replset secondary

    原文作者:haoge0205
    原文地址: http://blog.itpub.net/28939273/viewspace-2660435/
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞