真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MongoDB復(fù)制集角色類型詳解


創(chuàng)新互聯(lián)主營呼中網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā),呼中h5小程序制作搭建,呼中網(wǎng)站營銷推廣歡迎呼中等地區(qū)企業(yè)咨詢

                      MongoDB復(fù)制集角色類型

MongoDB復(fù)制集角色類型

1、標(biāo)準(zhǔn)節(jié)點(diǎn): 參與primary選舉,當(dāng)自身宕機(jī)或停止服務(wù)會(huì)自動(dòng)讓出primary

2、被動(dòng)節(jié)點(diǎn): 只能成為second 不參與選舉,被設(shè)置為被動(dòng)節(jié)點(diǎn)則不能參與選舉

3、仲裁節(jié)點(diǎn):負(fù)責(zé)投票選舉,不存放數(shù)據(jù),確保標(biāo)準(zhǔn)節(jié)點(diǎn)投票數(shù)不會(huì)相同

用實(shí)驗(yàn)來驗(yàn)證一下標(biāo)準(zhǔn)節(jié)點(diǎn)互相搶占和被動(dòng)節(jié)點(diǎn)不會(huì)搶占以及仲裁節(jié)點(diǎn)不存放數(shù)據(jù)。

利用MongoDB多實(shí)例進(jìn)行實(shí)驗(yàn),yum安裝MongoDB以及開啟多實(shí)例請(qǐng)參考以下

我的另一篇博客:https://blog.51cto.com/13760226/2174032

實(shí)驗(yàn)角色

●標(biāo)準(zhǔn)節(jié)點(diǎn)1:192.168.60.135:27017

●標(biāo)準(zhǔn)節(jié)點(diǎn)2:192.168.60.135:27018

●被動(dòng)節(jié)點(diǎn) :192.168.60.135:27019

●仲裁節(jié)點(diǎn) :192.168.60.135:27020

一、修改配置文件

vim  /etc/mongod.conf

systemLog:        #日志模塊下修改日志文件路徑

  destination: file

  logAppend: true

  path: /usr/local/mongodb/mongod1.log

(剩下實(shí)例也要修改,例:mongod2.log,mongod3.log,mongod4.log)


storage:      #存儲(chǔ)模塊下修改數(shù)據(jù)配置文件

  dbPath: /usr/local/mongo1

(同上,例:mongo2,mongo3,mongo4)


net:

  port: 27017         每個(gè)實(shí)例端口號(hào)不能相同(例:27018,27019,27020)

  bindIp: 0.0.0.0     監(jiān)聽任意地址


直接添加如下兩行,開啟復(fù)制集

replication: 

  replSetName: repl

二、復(fù)制配置文件,創(chuàng)建各自數(shù)據(jù)存放目錄

cp /etc/mongod.conf /etc/mongod2.conf

cp /etc/mongod.conf /etc/mongod3.conf

cp /etc/mongod.conf /etc/mongod4.conf

mkdir /usr/local/mongo{1,2,3,4}    #一次創(chuàng)建4個(gè)數(shù)據(jù)存放目錄(與配置文件的對(duì)應(yīng))

mkdir /usr/local/mongodb  #創(chuàng)建日志存放目錄

touch mongod{1,2,3,4}.log   #創(chuàng)建實(shí)例對(duì)應(yīng)日志文件

(注意:不要忘記修改復(fù)制的配置文件,端口號(hào)不能相同)

三、開啟多實(shí)例,設(shè)置標(biāo)準(zhǔn),被動(dòng),仲裁節(jié)點(diǎn)

[root@localhost ~]#mongod -f /etc/mongod.conf

[root@localhost ~]#mongod -f /etc/mongod2.conf

[root@localhost ~]#mongod -f /etc/mongod3.conf

[root@localhost ~]#mongod -f /etc/mongod4.conf

[root@localhost mongodb]# netstat -ntap | grep mongod

tcp        0      0 0.0.0.0:27019           0.0.0.0:*               LISTEN      2280/mongod         

tcp        0      0 0.0.0.0:27020           0.0.0.0:*               LISTEN      2308/mongod         

tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      2224/mongod         

tcp        0      0 0.0.0.0:27018           0.0.0.0:*               LISTEN      2252/mongod  

1)進(jìn)入其中一個(gè)Mongodb進(jìn)行設(shè)置,本文以27017為例

mongo進(jìn)入數(shù)據(jù)庫,設(shè)置如下

>cfg={"_id":"repl","members":

[{"_id":0,"host":"192.168.60.135:27017","priority":100},

{"_id":1,"host":"192.168.60.135:27018","priority":100},

{"_id":2,"host":"192.168.60.135:27019","priority":0},

{"_id":3,"host":"192.168.60.135:27020","arbiterOnly":true}]}

cfg只是一個(gè)名字,類似于變量。將27017和27018優(yōu)先級(jí)設(shè)置為100,

27019的優(yōu)先級(jí)為0,沒有資格參與選舉,27020設(shè)置為arbite,為仲裁復(fù)制集。

> rs.initiate(cfg)               #進(jìn)行初始化

{                              #提示如下信息

            "ok" : 1,

            "operationTime" : Timestamp(1536851525, 1),

            "$clusterTime" : {

                    "clusterTime" : Timestamp(1536851525, 1),

                    "signature" : {

                            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

                             "keyId" : NumberLong(0)

                        }

                    }

      }

2)查看狀態(tài)

repl:PRIMARY> rs.status()

MongoDB復(fù)制集角色類型詳解

MongoDB復(fù)制集角色類型詳解

MongoDB復(fù)制集角色類型詳解

27017被選為標(biāo)準(zhǔn)節(jié)點(diǎn),27018有選舉權(quán)但是已經(jīng)有標(biāo)準(zhǔn)節(jié)點(diǎn),所以變?yōu)楸粍?dòng)節(jié)點(diǎn),

27019被選為被動(dòng)節(jié)點(diǎn),27020被設(shè)置為仲裁節(jié)點(diǎn)。

四、驗(yàn)證

1)驗(yàn)證標(biāo)準(zhǔn)節(jié)點(diǎn)會(huì)互相搶占

repl:PRIMARY> rs.stepDown()    #主動(dòng)放棄主復(fù)制權(quán)

MongoDB復(fù)制集角色類型詳解

MongoDB復(fù)制集角色類型詳解

2)驗(yàn)證被動(dòng)節(jié)點(diǎn)不搶占

[root@localhost ~]# mongod -f /etc/mongod.conf --shutdown

killing process with pid: 2224

[root@localhost ~]# mongod -f /etc/mongod2.conf --shutdown

killing process with pid: 2252

關(guān)閉27017和27018的MongoDB

[root@localhost ~]# mongo -port 27019   #進(jìn)入mongodb端口27019

  >rs.status()


MongoDB復(fù)制集角色類型詳解

MongoDB復(fù)制集角色類型詳解

MongoDB復(fù)制集角色類型詳解


結(jié)論:當(dāng)兩臺(tái)標(biāo)準(zhǔn)節(jié)點(diǎn)宕機(jī)時(shí),被動(dòng)節(jié)點(diǎn)也不會(huì)頂替成為標(biāo)準(zhǔn)節(jié)點(diǎn),因?yàn)闆]有選舉權(quán)。

3)驗(yàn)證仲裁服務(wù)器不存儲(chǔ)數(shù)據(jù)

開啟MongoDB27017端口

[root@localhost ~]# mongod -f /etc/mongod.conf

mongo    #登陸


use list;    #創(chuàng)建一個(gè)數(shù)據(jù)庫

db.list.insert({"name":"zhangsan"})     創(chuàng)建list集合并插入信息    

repl:PRIMARY> db.list.find();             查詢list

{ "_id" : ObjectId("5b9a8ae579c4aae2378a4fd6"), "name" : "zhangsan" }

然后我們切換到27020仲裁服務(wù)器

[root@localhost ~]# mongo -port 27020

rs.slaveOk()    #先輸出該命令,不然無法查看

repl:ARBITER> show dbs;     #查看數(shù)據(jù)庫

local  0.000GB           #只能看見一個(gè)數(shù)據(jù)庫local


結(jié)論:仲裁服務(wù)器只負(fù)責(zé)投票選舉,不參與數(shù)據(jù)存儲(chǔ)



網(wǎng)站標(biāo)題:MongoDB復(fù)制集角色類型詳解
本文來源:http://weahome.cn/article/gpishd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部