MongoDB 初始化資料同步

haoge0205發表於2019-10-17

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-2660435/,如需轉載,請註明出處,否則將追究法律責任。

相關文章