欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

實(shí)戰(zhàn)MongoDB-Replication之ReplicaSet-創(chuàng)新互聯(lián)

實(shí)戰(zhàn)MongoDB

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)絡(luò)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、鐘樓網(wǎng)站維護(hù)、網(wǎng)站推廣。

Master-Slave

MongoDB支持不同服務(wù)之間的異步的數(shù)據(jù)復(fù)制,來(lái)實(shí)現(xiàn)failover(故障轉(zhuǎn)移,故障切換,故障恢復(fù)) and redundancy(數(shù)據(jù)冗余)。

同一時(shí)間,只有一個(gè)服務(wù)節(jié)點(diǎn)(primary或者master)支持寫(xiě)入。

MongoDB支持兩種復(fù)制的模式:

  1. Master/Slave,主從復(fù)制,角色包括master和slave。
  2. Replica Set,復(fù)制集復(fù)制,角色包括primary和secondary。

介紹Master/Slave的官方地址:

http://www.mongodb.org/display/DOCS/Master+Slave

介紹Replica Set的官方地址:

http://www.mongodb.org/display/DOCS/Replica+Sets

今天實(shí)戰(zhàn)的是replica set,也就是復(fù)制集復(fù)制。

  • replica set可以實(shí)現(xiàn)自動(dòng)的failover和自動(dòng)的recovery。
  • replica set由兩個(gè)或者更多的節(jié)點(diǎn)組成,實(shí)現(xiàn)彼此的復(fù)制。
  • replica set自動(dòng)選擇primary節(jié)點(diǎn),沒(méi)有一個(gè)節(jié)點(diǎn)是固定的primary。
  • mongos會(huì)自動(dòng)發(fā)現(xiàn)一個(gè)replica set的primary節(jié)點(diǎn)發(fā)生變化,并將寫(xiě)操作發(fā)送給這個(gè)新的primary節(jié)點(diǎn)。

通常用于下面幾個(gè)場(chǎng)景

  • 數(shù)據(jù)冗余。
  • 自動(dòng)failover,提供高可用性的服務(wù)。
  • 分散讀的負(fù)載。
  • 簡(jiǎn)化維護(hù)(相對(duì)于master-slave來(lái)說(shuō))。
  • 災(zāi)難恢復(fù)。

首先還是啟動(dòng)mongod,用于replica set的參數(shù)有兩個(gè):

--replSet <setname>,復(fù)制集的名稱。

--oplogSize <MB>,操作日志的大小,單位為MB。

這回我們?cè)趗buntu下面配置replica set,先啟動(dòng)兩個(gè)mongod節(jié)點(diǎn)。

  1. mongod --dbpath /home/andyshi/mongo1/ --logpath /home/andyshi/mongo1/log.log --replSet shard1 --port 10001 --bind_ip 192.168.0.21

  1. mongod --dbpath /home/andyshi/mongo2/ --logpath /home/andyshi/mongo2/log.log --replSet shard1 --port 10002 --bind_ip 192.168.0.21

你會(huì)注意到,上面兩個(gè)mongod的啟動(dòng)參數(shù)replSet指定了相同的值shard1,也就是兩個(gè)個(gè)mongod節(jié)點(diǎn)處于同一個(gè)replica set中。

Replica Set的初始化

光啟動(dòng)了兩個(gè)個(gè)mongod節(jié)點(diǎn),還不能提供任何的服務(wù),這時(shí)候你使用mongo連接之后,進(jìn)行db.book.insert會(huì)提示你no master,也就是說(shuō)沒(méi)有primary節(jié)點(diǎn),所以他不知道往哪一個(gè)節(jié)點(diǎn)寫(xiě)入數(shù)據(jù)。

在啟動(dòng)了兩個(gè)個(gè)mongod節(jié)點(diǎn)之后,需要進(jìn)行初始化。

首先用mongo連接到任意一個(gè)mongod節(jié)點(diǎn),然后執(zhí)行下面的命令。

  1. cfg={_id:'shard1',members:[
  2. {_id:0,host:'192.168.0.21:10001'},
  3. {_id:1,host:'192.168.0.21:10002'}]
  4. }
  5. rs.initiate(cfg)

出現(xiàn)下面的提示信息就代表成功了,如果沒(méi)有成功,可以google一下錯(cuò)誤提示,會(huì)找到很多的答案的。

  1. {
  2.    "info" : "Config now saved locally.  Should come online in about a minute.",
  3.    "ok" : 1
  4. }

繼續(xù)執(zhí)行

  1. rs.status()

可以查看replica set的狀態(tài),包括名稱,時(shí)間,當(dāng)前登錄的mongod是primary還是secondary,以及成員的信息等。

在replica set的信息中,其中重要的是:

  • myState的值,如果是1代表當(dāng)前登錄的是primary;如果是2代表當(dāng)前登錄的是secondary。

成員信息中包括地址,健康狀態(tài),是primary還是secondary等。

成員信息中比較重要的是

  • state:1表示該host是當(dāng)前可以進(jìn)行讀寫(xiě),2:不能讀寫(xiě)
  • health:1表示該host目前是正常的,0:異常

這時(shí)候登錄primary的mongod,插入一條數(shù)據(jù)。

  1. //假設(shè)10001是primary,可以通過(guò)查詢r(jià)s.status來(lái)獲取
  2. mongo 192.168.0.21:10001
  3. use test
  4. db.book.insert({'title':'computer'})

然后查看secondary的log文件,會(huì)發(fā)現(xiàn)發(fā)生了復(fù)制行為。

這時(shí)候登錄secondary,use test,db.book.find(),可以報(bào)錯(cuò)了。

  1. error: { "$err" : "not master and slaveok=false", "code" : 13435 }

沒(méi)有關(guān)系,在secondary讀取數(shù)據(jù)還需要我們做最后的一步,在需要讀取數(shù)據(jù)的secondary上執(zhí)行。

  1. rs.slaveOK()

這時(shí)候再次db.book.find(),正常顯示結(jié)果了,沒(méi)有問(wèn)題了。

添加節(jié)點(diǎn)

啟動(dòng)新mongod節(jié)點(diǎn)

  1. mongod --dbpath /home/andyshi/mongo3/ --logpath /home/andyshi/mongo3/log.log --replSet shard1 --port 10003 --bind_ip 192.168.0.21

連接primary節(jié)點(diǎn),執(zhí)行下面的命令。

  1. rs.add('192.168.0.21:10003')
  2. rs.addArb('192.168.0.21:10003')
  3. //重新配置
  4. rs.reconfig(rs.conf())

強(qiáng)制一個(gè)節(jié)點(diǎn)成為primary

在mongodb2.0之后可以使用下面

相比master-slave,replica set的優(yōu)點(diǎn)就是沒(méi)有單點(diǎn)故障,primary故障之后,整個(gè)replica set會(huì)自動(dòng)選擇一個(gè)健康的節(jié)點(diǎn)成為primary,承擔(dān)寫(xiě)的任務(wù),可用性比master-slave的高,提供更高的可用性。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:實(shí)戰(zhàn)MongoDB-Replication之ReplicaSet-創(chuàng)新互聯(lián)
本文來(lái)源:http://chinadenli.net/article18/ddiegp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站導(dǎo)航Google、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)