* MongoDB復制是將數據同步在多個服務器的過程。
* 復制提供了數據的冗余備份,并在多個服務器上存儲數據副本,提高了數據的可用性, 并可以保證數據的安全性。
* 如果當前的主實例失敗,會在副本集中選出一個新的主實例
* MongoDB的復制至少需要兩個節點
* 其中一個是主節點,負責處理客戶端請求,其余的都是從節點,負責復制主節點上的數據。
* 各個節點常見的搭配方式為:一主一從、一主多從
數據庫總是會遇到各種失敗的場景,如網絡連接斷開、斷電等。盡管<ins>Journaling 日志功能也提供了數據恢復的功能,但它通常是針對單個節點來說的,只能保證單節點數據的一致性</ins>。而<mark>副本集通常是由多個節點組成,每個節點除了Journaling 日志恢復功能外,整個副本集還具有故障自動轉移的功能,這樣能保證數據庫的高可用性</mark>。
<br/>
在生產環境中一個副本集最少應該包含三個節點,其中有一個必須是主節點,典型的部署結構如圖所示。
:-: 
副本集結構圖
每個節點都是一個 mongod 進程對應的實例,節點之間互相周期性地通過心跳檢查對方的狀態。
<br/>
默認情況下 primary 節點負責數據的讀寫,secondary 節點備份 primary 節點上的數據,但是 arbiter 節點不會從 primary 節點同步數據。從它的名字 arbiter 可以看出,它起到的作用只是當 primary 節點故障時,能夠參與到副本集剩下的節點中,選擇出一個新的 primary 節點,它自己永遠不會變為primary 節點,也不會參與數據的讀寫。也就是說,數據庫的數據會存在 primary和 secondary 節點中,secondary 節點相當于一個備份。
<br/>
當然 secondary 節點可以有多個,當 primary 節點故障時,secondary 節點有可能變為 primary 節點,典型流程如圖所示。
:-: 
故障轉移流程圖
- MySQL
- MySQL是什么
- MySQL環境搭建
- centos7-MySQL8
- windows-MySQL8
- 數據庫軟件
- sqlyog軟件安裝
- navicat軟件安裝
- powerDesigner軟件安裝
- RDBMS術語
- SQL語句組成
- 數據庫系統組成
- 數據庫操作
- 數據表操作
- 查詢語句
- 基本語法
- 子查詢
- 表連接
- 查詢語句執行順序
- 事務
- 事務是什么
- 事務的作用
- 事務的4個特性
- 事務隔離級別
- 事務的實現
- 索引
- 索引的作用
- 索引操作
- 存儲引擎
- 備份與恢復
- 視圖
- 視圖是什么
- 視圖的作用
- 創建視圖
- 查看視圖
- 更改視圖
- DML操作視圖
- 刪除視圖
- 存儲過程與函數
- 過程與函數是什么
- 存儲過程操作
- 定義存儲過程
- 調用存儲過程
- 查看存儲過程
- 刪除存儲過程
- 修改存儲過程
- 函數操作
- 過程與函數區別
- 流程控制
- if語句
- case語句
- while循環語句
- repeat循環語句
- loop循環語句
- 變量
- 處理程序
- 光標
- Redis
- 簡介
- 下載與安裝
- 命令操作redis數據庫
- 通用命令
- 數據操作
- 持久化
- Windows上的持久化操作
- 數據庫設計
- 數據庫設計過程
- ER模型圖
- MongoDB
- MongoDB是什么?
- MongoDB特性
- MongoDB 數據模型
- 安裝MongoDB
- MongoDB認證
- Database操作
- Collection操作
- Document操作
- 插入
- 查詢
- 更新
- 刪除
- buckWrite
- MongoDB索引
- 副本集
- 聚焦分析
- 事務管理
- 寫關注
- 讀關注