MongoDB中怎么配置副本集,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)建站主營龍港網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,APP應用開發(fā),龍港h5微信小程序定制開發(fā)搭建,龍港網(wǎng)站營銷推廣歡迎龍港等地區(qū)企業(yè)咨詢
環(huán)境準備
三臺服務器,地址分別是:
192.168.248.128 192.168.248.135 192.168.248.136
按照上文介紹的步驟搭建副本集環(huán)境,這里不再贅述。
在副本集環(huán)境搭建好之后,我們可以利用如下命令刪除一個副本集成員:
rs.remove('192.168.248.128:27017')
上面的命令執(zhí)行完成后,我們可以通過rs.status()命令來查看是否刪除成功,也可以通過如下命令來為副本集添加一個成員:
rs.add('192.168.248.128:27017')
當然,副本集也是可以更新的,使用reconfig命令即可,如下:
首先定義config,如下:
config={_id:"rs",members:[{_id:3,host:"192.168.248.128"},{_id:1,host:"192.168.248.135"}]}
然后執(zhí)行更新操作:
rs.reconfig(config)
我們也可以利用config=rs.config()獲取原始的config文件,然后進行修改,修改之后再執(zhí)行 rs.reconfig(config),如下:
config=rs.config() config.members[0].host="192.168.248.136" rs.reconfig(config)
在上文中給小伙伴們演示了主節(jié)點掛掉后的情況,和其他的(如redis)數(shù)據(jù)庫主從復制不同,MongoDB中主節(jié)點掛掉之后會自動從備份節(jié)點中選出一個新的主節(jié)點出來,這是一個選舉的過程,投票選舉,但是如果備份節(jié)點數(shù)為偶數(shù)的話,可能會出現(xiàn)兩臺服務器票數(shù)相等的情況,為了避免這種問題的出現(xiàn),我們一般有兩種解決方案:
1.數(shù)據(jù)節(jié)點為奇數(shù)個,這樣就會避免上面描述的問題出現(xiàn)。
2.使用選舉仲裁者,這是一種特殊的成員,仲裁者不保存數(shù)據(jù),也不為客戶端提供服務,只是在選舉投票出現(xiàn)僵持時出來投個票,一個副本集中最多只能有一個仲裁者。
選舉仲裁者占用的系統(tǒng)資源很小,因此對部署的服務器性能沒多大要求,向副本集中添加仲裁者的方式如下:
rs.addArb('192.168.248.128:27017')
也可以利用我們之前說的reconfig來操作:
config=rs.config() config.members[2]={_id:2,host:'192.168.248.128',arbiterOnly:true} rs.reconfig(config)
添加完成之后,我們可以通過rs.status()命令來查看是否添加成功,如果看到如下內(nèi)容,表示添加成功:
{ "_id" : 2, "name" : "192.168.248.128:27017", "health" : 1, "state" : 7, "stateStr" : "ARBITER", "uptime" : 2, "lastHeartbeat" : ISODate("2017-11-03T08:56:12.406Z"), "lastHeartbeatRecv" : ISODate("2017-11-03T08:56:08.417Z"), "pingMs" : NumberLong(1), "configVersion" : 8 }
仲裁者的移除和普通節(jié)點的移除是一樣的,這里不再贅述。
優(yōu)先級用來描述一個備份節(jié)點成為主節(jié)點的優(yōu)先性問題,優(yōu)先級的取值范圍為[0-100],默認為1,數(shù)字越大優(yōu)先級越高,越有可能成為主節(jié)點,0表示該節(jié)點永遠不能成為主節(jié)點。
我們可以在添加節(jié)點時指定優(yōu)先級,如下:
rs.add({_id:0,host:'192.168.248.128:27017',priority:2})
也可以為已有的節(jié)點設置優(yōu)先級:
config=rs.config() config.members[0].priority=99 rs.reconfig(config)
關(guān)于MongoDB中怎么配置副本集問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。