MongoDB 3.0 Replica Set 搭建

複製介紹

複製是在多臺服務器之間同步數據的過程。複製集在大多數場合下已經代替Master-Slave複製。若是可能的話,儘量使用複製集而不是主-從複製架構。mongodb

節點介紹

主節點(Primary)

在複製集中,主節點是惟一可以接收寫請求的節點。MongoDB在主節點進行寫操做,並將這些操做記錄到主節點的oplog中。而從節點將會從oplog複製到其本機,並將這些操做應用到本身的數據集上。(複製集最多隻能擁有一個主節點)服務器

從節點(Secondaries)

從節點經過應用主節點傳來的數據變更操做來保持其數據集與主節點一致。從節點也能夠經過增長額外參數配置來對應特殊需求。例如,從節點能夠是non-voting或是priority 0.架構

仲裁節點(ARBITER)

仲裁節點即投票節點,其自己並不包含數據集,且也沒法晉升爲主節點。可是,旦當前的主節點不可用時,投票節點就會參與到新的主節點選舉的投票中。仲裁節點使用最小的資源而且不要求硬件設備。投票節點的存在使得複製集能夠以偶數個節點存在,而無需爲複製集再新增節點 不要將投票節點運行在複製集的主節點或從節點機器上。 投票節點與其餘 複製集節點的交流僅有:選舉過程當中的投票,心跳檢測和配置數據。這些交互都是不加密的。app

  • Tip 1 : 一個複製集至少須要這個成員:一個主節點,一個從節點和一個投票節點。可是在大多數狀況下,咱們會保持3個擁有數據集的節點:一個主節點和兩個從節點。即測試

圖片1

  • Tip 2 : mongo3.0.0 版本更改:一個複製集最多可添加到50個節點,可是隻能有7個投票節點(包括主節點)。在此以前,複製集最多可添加12個節點。加密

節點規則

配置副本集

準備三臺機器,而且必須保持三臺服務器可以相互鏈接,配置爲一主一從一仲裁的模式spa

  1. 192.168.1.7:27017rest

  2. 192.168.1.8:27017日誌

  3. 192.168.1.9:27017code

配置文件說明

# 日誌記錄
logpath=/tmp/mongodb/log/mongod.log
logappend=true
# fork and run in background
fork = true
port = 27017
dbpath=/tmp/mongodb/data
# location of pidfile
pidfilepath = /tmp/mongodb/log/mongod.pid
rest = true
maxConns=32000

# Disables write-ahead journaling
# nojournal = true

# Replication Options
replSet=RsM

服務啓動

分別啓動三臺mongo服務

/tmp/mongodb/bin/mongod -f /tmp/mongodb/conf/mongo.conf

初始化配置

進入其中一臺mongo,進行配置(注:賬戶權限,認證忽略)
增長一個變量

cfg = {"_id": "RsM", "members":[
    {"_id": 0,"host":"192.168.1.7:27017","priority":1},
    {"_id": 1,"host":"192.168.1.8:27017","priority":1},
    {"_id": 2,"host":"192.168.1.9:27017","priority":1},
]};
rs.initate(cfg);

 # 查看狀態
rs.status()

測試故障自助轉移

殺掉主節點,進入從節點後,利用rs.status();查看狀態便可!

補充說明

新增節點與去除節點

rs.add("ip:port"); // 新增從節點
rs.addArb("ip:port"); // 新增仲裁節點
rs.remove("ip:port"); // 刪除一個節點
rs.isMaster(); // 查看當前是不是主節點
相關文章
相關標籤/搜索