溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mongodb副本集

發(fā)布時(shí)間:2020-07-06 00:50:39 來源:網(wǎng)絡(luò) 閱讀:648 作者:zhu_my 欄目:MongoDB數(shù)據(jù)庫(kù)

       其實(shí)mongodb也可以做主從機(jī)制,mongodb一主一從類似mysql,但是slave在架構(gòu)中為只讀,并且主機(jī)宕機(jī)后從不能自動(dòng)切換為主。現(xiàn)在官方已經(jīng)不推薦使用了,改用副本集。

  • 這種模式下有一個(gè)主(primary),和多個(gè)從(secondary),只讀。支持給它們?cè)O(shè)置權(quán)重,當(dāng)主宕掉后,權(quán)重最高的從切換為主

  • 在此架構(gòu)中還可以建立一個(gè)仲裁(arbiter)的角色,它只負(fù)責(zé)裁決,而不存儲(chǔ)數(shù)據(jù)l再此架構(gòu)中讀寫數(shù)據(jù)都是在主上,要想實(shí)現(xiàn)負(fù)載均衡的目的需要手動(dòng)指定讀庫(kù)的目標(biāo)server


1.MongoDB副本集搭建

三臺(tái)機(jī)器:192.168.1.100(primary)  192.168.1.101(secondary)   192.168.1.102(secondary) 

編輯三臺(tái)機(jī)器的配置文件/etc/mongod.conf,增加:

###########

replication:

##oplog大小

  oplogSizeMB: 20

##復(fù)制集名稱

  replSetName: monreplset     //名字可以隨意

##############

分別重啟三臺(tái)機(jī)器

在主上連接mongo

>use admin

>config={_id:"monreplset",members:[{_id:0,host:"192.168.1.100:27017"},{_id:1,host:"192.168.1.101:27017"},{_id:2,host:"192.168.1.102:27017"}]}

>rs.initiate(config)

>rs.add("192.168.1.101")

>rs.add("192.168.1.102")

rs.status()       //查看狀態(tài)

如果兩個(gè)從上的狀態(tài)為"stateStr": "STARTUP", 則需要進(jìn)行如下操作

>var  config={_id:"monreplset",members:[{_id:0,host:"192.168.1.100:27017"},{_id:1,host:"192.168.1.101:27017"},{_id:2,host:"192.168.1.102:27017"}]}

>rs.reconfig(config)

此時(shí)再次查看rs.status()會(huì)發(fā)現(xiàn)從的狀態(tài)變?yōu)镾ECONDARY


2.MongoDB副本集測(cè)試

主上建庫(kù),建集合

>use mydb

>db.test.insert({ID:1,UserName:"123",password:"123456"})

>show dbs

從上查看

>show dbs   

若出現(xiàn)錯(cuò)誤Error:listDatabasesfailed:{ "note" : "from execCommand","ok" : 0, "errmsg": "not master" },

執(zhí)行>rs.slaveok()即可


3.MongoDB副本集更改權(quán)重

默認(rèn)三臺(tái)機(jī)器權(quán)重都為1,如果任何一個(gè)權(quán)重設(shè)置為比其他的高,則該臺(tái)機(jī)器馬上切換為primary角色,所以我們預(yù)設(shè)三臺(tái)機(jī)器的權(quán)重分別為:100:3, 101:2, 102:1

在主上執(zhí)行

cfg= rs.config()

cfg.members[0].priority= 3

cfg.members[1].priority= 2

cfg.members[2].priority= 1

rs.reconfig(cfg)

這樣的話,第二個(gè)節(jié)點(diǎn)將會(huì)成為候選主節(jié)點(diǎn)。

主上執(zhí)行iptables-I INPUT -p tcp--dport 27017 -j DROP禁掉27017端口的訪問

這時(shí)101將變成primary成為主。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI