Mongo主從同步原理是基於複製集(replicate set).複製集是一組mongodb例項,其中一個例項為主節點,其他例項為從節點。主節點負責所有資料寫操作,並將寫操作的結果複製到從節點。從節點只能讀取資料,不能寫入資料
在mongo中,主節點和從節點之間的資料同步是透過oplog(操作日誌)實現的。Oplog是一個特殊的集合,它記錄了主節點上所有的寫操作。當從節點連線到主節點時,他會從Optlog中讀取所有未同步的寫操作,並將他們應用到自己的資料集合中,這樣就能保持主從節點資料一致性
具體如下:
a)資料寫入到主節點,同時把該資料寫入到主節點oplog中,並且記錄一個時間戳
b)從節點從自己本地庫oplog集合中找出最近的時間戳
c)從節點檢查主節點本地庫oplog集合,找出大於從節點時間戳的記錄
d)將主節點找到的記錄插入到自己oplog集合中,並執行這些操作
e)從節點更新最近時間戳