MongoDB replica set部署實踐

MongoDB高可用性方案

Replica set(複製集)是MongoDB推薦的高可用性解決方案。它使用n個(通常爲奇數)mongod節點,構建具備數據備份,故障轉移以及自動恢復的高可用性方案。html

 

Replica set部署(step by step)

本文介紹的是已存在的單點MongoDB擴展爲一個高可用性的Replica set部署。假設已存在mongod實例節點經過單獨文件配置啓動,配置項以下sql

  • port=18888
  • dbpath=E:\mongodb\data
  • logpath=E:\mongodb\log\mongo.log
  • logappend=true
  • directoryperdb=true
  • journal=true
  • serviceName=MongoDB_Test
  • serviceDisplayName=MongoDB for test

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

其餘配置選項根據實際狀況選擇

 

注意

  • 數據庫寫入操做只能由primary角色的mongod實例完成
  • 默認狀況下,讀取數據也是由primary角色的mongod實例完成
  • 可配置實現由secondary完成數據讀取,在併發壓力大的狀況下實現讀寫分離

 

相關文章

 

相關文章
相關標籤/搜索