mongodb-4.0.4搭建集羣

mongodb-4.0.4搭建集羣

2018年12月12日 15:32:12 張益達· 閱讀數 365更多linux

分類專欄: centos7環境搭建mongodb

版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接和本聲明。數據庫

本文連接:https://blog.csdn.net/weixin_42082634/article/details/84973831centos

前篇已經介紹了MongoDB單機的搭建與使用,若是有小夥伴還不會進行單機的搭建,能夠先看前一篇的,本篇主要介紹集羣的搭建與使用!app

mongodb的集羣搭建方式主要有三種,主從模式,Replica set模式,sharding模式, 三種模式各有優劣,適用於不一樣的場合,屬Replica set應用最爲普遍,主從模式如今用的較少,sharding模式最爲完備,但配置維護較爲複雜。本文咱們來看下Replica Set模式的搭建方法。centos7

Mongodb的Replica Set即副本集方式主要有兩個目的,一個是數據冗餘作故障恢復使用,當發生硬件故障或者其它緣由形成的宕機時,可使用副本進行恢復。另外一個是作讀寫分離,讀的請求分流到副本上,減輕主(Primary)的讀壓力。spa

Replica Set是mongod的實例集合,它們有着一樣的數據內容。包含三類角色:
(1)主節點(Primary)
接收全部的寫請求,而後把修改同步到全部Secondary。一個Replica Set只能有一個Primary節點,當Primary掛掉後,其餘Secondary或者Arbiter節點會從新選舉出來一個主節點。默認讀請求也是發到Primary節點處理的,須要轉發到Secondary須要客戶端修改一下鏈接配置。.net

(2)副本節點(Secondary)
與主節點保持一樣的數據集。當主節點掛掉的時候,參與選主。3d

(3)仲裁者(Arbiter)
不保有數據,不參與選主,只進行選主投票。使用Arbiter能夠減輕數據存儲的硬件需求,Arbiter跑起來幾乎沒什麼大的硬件資源需求,但重要的一點是,在生產環境下它和其餘數據節點不要部署在同一臺機器上。
注意,一個自動failover的Replica Set節點數必須爲奇數,目的是選主投票的時候要有一個大多數才能進行選主決策。日誌

(4)選主過程
其中Secondary宕機,不受影響,若Primary宕機,會進行從新選主:
在這裏插入圖片描述
下邊咱們來使用Arbiter搭建Replica Set

偶數個數據節點,加一個Arbiter構成的Replica Set方式:
在這裏插入圖片描述

集羣配置:

主機 角色
10.0.86.207 主節點
10.0.86.21 從節點
10.0.86.193 仲裁節點

1.下載資源包:
下載MongoDB資源包

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.4.tgz
tar -zxvf mongodb-linux-x86_64-4.0.4.tgz
  • 1
  • 2

2.配置文件:
三臺MongoDB配置文件都是一樣的寫法,ip和路徑作適當修改便可

vi  /usr/local/sdb/mongodb-linux-x86_64-4.0.4/mongodb.conf
	
port=27017 #端口 
dbpath= /usr/local/sdb/mongodb-linux-x86_64-4.0.4/db #數據庫存文件存放目錄 
logpath= /usr/local/sdb/mongodb-linux-x86_64-4.0.4/mongodb.log #日誌文件存放路徑 
logappend=true #使用追加的方式寫日誌 
fork=true #不以守護程序的方式啓用,即不在後臺運行
replSet=sciencedb	#Replica Set的名字 集羣名稱
maxConns=100 #最大同時鏈接數 
noauth=true #不啓用驗證 
journal=true #每次寫入會記錄一條操做日誌(經過journal能夠從新構造出寫入的數據)。 
#即便宕機,啓動時wiredtiger會先將數據恢復到最近一次的checkpoint點,而後重放後續的journal日誌來恢復。 
storageEngine=wiredTiger #存儲引擎有mmapv一、wiretiger、mongorocks 
bind_ip = 10.0.86.193 #這樣就可外部訪問了,例如從win10中去連虛擬機中的MongoDB
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3.啓動MongoDB
啓動三臺MongoDB服務
在bin目錄下,

./mongod -f /usr/local/sdb/mongodb-linux-x86_64-4.0.4/mongodb.conf
  • 1

4.在主節點進行配置
仍是在bin目錄下依次進行操做,

./mongo 10.0.86.21
	use admin
	cfg={ _id:"sciencedb", members:[ {_id:0,host:'10.0.86.21:27017',priority:2}, {_id:1,host:'10.0.86.207:27017',priority:1}, {_id:2,host:'10.0.86.193:27017',arbiterOnly:true}] };
  • 1
  • 2
  • 3

備註:
cfg名字可選,只要跟mongodb參數不衝突,_id爲Replica Set名字,members裏面的優先級priority值高的爲主節點,對於仲裁點必定要加上arbiterOnly:true,不然主備模式不生效
priority表示優先級別,數值越大,表示是主節點
arbiterOnly:true表示仲裁節點
使集羣cfg配置生效rs.initiate(cfg)
查看是否生效rs.status()
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述
接上
在這裏插入圖片描述
圖片長度限制這裏只列出部分說明狀況

「stateStr」 : 「PRIMARY」表示主節點, 「stateStr」 : 「SECONDARY」表示從節點, 「stateStr」 : 「ARBITER」,表示仲裁節點
添加節點命令:
添加secondary:rs.add({host: 「192.168.255.141:27019」, priority: 1 })
添加仲裁點:rs.addArb(「192.168.255.142:27019」)
移除節點:rs.remove({host: 「192.168.255.141:27019」})

此時已經完成MongoDB集羣的搭建,能夠在主節點插入數據查看從節點是否能夠把數據同步過去

相關文章
相關標籤/搜索