MongoDB 複製
- 副本集:簡單說,副本集就是有自動故障恢復功能的主從集羣。主從集羣和副本集最爲明顯的區別:副本集沒有固定的「主節點」。整個集羣會選出一個主節點。當其不能工做時,變動到其餘節點。兩者看起來很是類似:副本集總會有一個活躍節點(primary),一個或多個備份節點(secondry)。
- 副本集最美妙的地方就是全部東西都是自動化的。首先,它爲你作了不少管理工做,自動提高備份節點爲活躍節點。其次,對開發者而言,也很易用:僅須要爲副本集指定服務器。驅動程序就會自動找到服務器。在當前活躍節點死機時,自動處理故障恢復這類事情。
- mongodb 的複製至少須要兩個服務器或者節點。其中一個是主節點。負責處理客戶端請求。其它的都是從節點。負責映射主節點的數據。 主節點記錄在其上執行的全部操做。從節點按期輪詢主節點獲得這些操做。而後對本身的數據副本執行這些操做。因爲和主節點執行了相同的操做,從節點就能與主節點的數據保持同步。
- 主節點的操做記錄稱爲oplog(operation log)。oplog存儲在一個特殊的數據庫中。叫作local。oplog就在其中的oplog.$main集合裏面。oplog中的每一個文檔都表明主節點上執行的一個操做。oplog只記錄改變數據庫狀態的操做。查詢操做就不存儲在oplog中。啓動服務器時用--oplogSize 指定大小。
- 從節點第一次啓動時,會對主節點數據進行完整的同步。同步完成後,從節點會查詢主節點的oplog並執行這些操做,以保證數據是最新的。
歡迎關注本站公眾號,獲取更多信息