溫馨提示×

溫馨提示×

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

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

3.4-MongoDB副本集搭建

發(fā)布時(shí)間:2020-07-23 19:59:00 來源:網(wǎng)絡(luò) 閱讀:1750 作者:llzdwyp 欄目:MongoDB數(shù)據(jù)庫

* MongoDB 副本集(repl set)介紹

早期版本使用master-slave,一主一從和MySQL類似,但slave在此架構(gòu)中為只讀,當(dāng)主庫宕機(jī)后,從庫不能自動切換為主


目前已經(jīng)淘汰master-slave模式,改為副本集,這種模式下有一個(gè)主(primary),和多個(gè)從(secondary),只讀。支持給它們設(shè)置權(quán)重,當(dāng)主宕掉后,權(quán)重最高的從切換為主


在此架構(gòu)中還可以建立一個(gè)仲裁(arbiter)的角色,它只負(fù)責(zé)裁決,而不存儲數(shù)據(jù)


再此架構(gòu)中讀寫數(shù)據(jù)都是在主上,要想實(shí)現(xiàn)負(fù)載均衡的目的需要手動指定讀庫的目標(biāo)server



* MongoDB副本集搭建

三臺機(jī)器: 172.7.15.111(primary)   172.7.15.112(secondary)    172.7.15.101(secondary) 

編輯三臺機(jī)器的配置文件,增加:

replication:

##oplog大小    #類似mysql的二進(jìn)制日志

  oplogSizeMB: 20  #注意,此處開頭有2個(gè)空格

##復(fù)制集名稱

  replSetName: aminglinux  #注意,此處開頭有2個(gè)空格

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



* MongoDB副本集搭建

連接主,在主上運(yùn)行命令mongo 

>use admin

>config={_id:"aminglinux",members:[{_id:0,host:"172.7.15.111:27017"},{_id:1,host:"172.7.15.112:27017"},{_id:2,host:"172.7.15.101:27017"}]} #config類似變量

>rs.initiate(config)      #初始化,如果查看狀態(tài)有了成員,下面的加載就不用執(zhí)行了。

>rs.add("172.7.15.112")   #加載成員

>rs.add("172.7.15.101")

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

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

> var config={_id:"aminglinux",members:[{_id:0,host:"172.7.15.111:27017"},{_id:1,host:"172.7.15.112:27017"},{_id:2,host:"172.7.15.101:27017"}]}

>rs.reconfig(config)

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



課后答疑:

問:1、實(shí)驗(yàn)中,仲裁者是誰,是不是不要仲裁者也行?

2、實(shí)驗(yàn)中,哪個(gè)參數(shù)是配置優(yōu)先級的,如果沒有,他是怎么判斷將哪臺機(jī)器作為primary的?

3、config={_id:"mongo1",members:[{_id:0,host:"10.10.10.60:27017"},{_id:1,host:"10.10.10.50:27017"},{_id:2,host:"10.10.10.70:27017"}]} ,這個(gè)命令里的配置生效后,有沒辦法進(jìn)行修改?


答:1 不設(shè)置仲裁也沒有關(guān)系

2 參考文檔,http://www.apelearn.com/bbs/thread-9287-1-1.html

3 對config 重新賦值。

建議多使用搜索引擎嘗試搜一下


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

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

AI