Replica set(複製集)是MongoDB推薦的高可用性解決方案。它使用n個(通常爲奇數)mongod節點,構建具備數據備份,故障轉移以及自動恢復的高可用性方案。html
本文介紹的是已存在的單點MongoDB擴展爲一個高可用性的Replica set部署。假設已存在mongod實例節點經過單獨文件配置啓動,配置項以下sql
1.中止MongoDB_Test服務mongodb
2.增長配置項replSet=rs0(複製集名稱),從新啓動MongoDB_Test服務,使得MongoDB_Test mongod實例成爲rs0的一個成員數據庫
3. mongo命令登陸到MongoDB_Test mongod實例windows
4.rs.initiate()初始化複製集服務器
5.rs.status()查看複製集合狀態併發
6.分別在兩臺服務器上新建mongod實例並啓動,做爲Replica set的另外兩個成員。如何安裝MongoDBapp
7.rs.add("<hostname><:port>")新增mongod實例做爲Replica set的成員,rs.addArb("<hostname><:port>")新增mongod實例做爲Replica set的仲裁節點,它不存儲數據。在域環境下,hostname能夠爲域名或IP;對於沒有入域的各個mongod實例節點,hostname爲機器名,而且須要在各個節點服務器host文件中配置與服務器IP映射nosql
成功加入到Replica set後,會自動同步數據到其餘的Repilica set成員(時間視數據大小而定)htm
至此,成功擴展單點MongoDB成爲Replica set部署。可經過mongo命令鏈接任一mongod實例查看Replica set狀態
8.模擬插入,修改,刪除數據,發現Replica set各成員數據同步
9.中止Replica set任一成員,不影響數據服務,重啓後自動從其餘成員同步變化的數據,若是是primary成員,則Replica set會選舉出另外一成員充當primary角色
示例
mongodb://ip1:port1,ip2:port2,ip3:port3/?safe=true;maxpoolsize=100
其餘配置選項根據實際狀況選擇