MongoDB集群配置要點(diǎn)_第1頁
MongoDB集群配置要點(diǎn)_第2頁
MongoDB集群配置要點(diǎn)_第3頁
MongoDB集群配置要點(diǎn)_第4頁
MongoDB集群配置要點(diǎn)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

MongoDB集群配置閱讀對象本文檔的閱讀對象包括:總監(jiān)架構(gòu)部經(jīng)理>組件負(fù)責(zé)人項(xiàng)目組成員目錄TOC\o"1-5"\h\z\o"CurrentDocument"閱讀對象 2\o"CurrentDocument"目錄 3\o"CurrentDocument"引言 1\o"CurrentDocument"編寫目的 1\o"CurrentDocument"術(shù)語定義 1\o"CurrentDocument"引用標(biāo)準(zhǔn) 1\o"CurrentDocument"安裝說明 2REPLICASET. 3下載解壓 3建立數(shù)據(jù)文件夾 4建立配置文件 4啟動(dòng)MONGODB 6配置主,備,仲裁節(jié)點(diǎn) 7認(rèn)證 9添加仲裁節(jié)點(diǎn) 10添加從節(jié)點(diǎn) 10修改IP地址 111引言1.1編寫目的本文記錄了集群環(huán)境下安裝MongoDB的步驟,為軟件開發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)提供一個(gè)完整的安裝手冊,指導(dǎo)系統(tǒng)的開發(fā)和部署。1.2術(shù)語定義術(shù)語術(shù)語解釋1.3引用標(biāo)準(zhǔn)標(biāo)準(zhǔn)名稱制訂者備注2安裝說明Mongodb有三種集群方式的搭建:ReplicaSet,Sharding和Master-Slaver。這里只說明最簡單的集群搭建方式(生產(chǎn)環(huán)境),如果有更多節(jié)點(diǎn)可以此類推或者查看官方文檔,在實(shí)際環(huán)境中也要根據(jù)具體業(yè)務(wù)需求確定集群的搭建方式。OS是Ubuntu_x64系統(tǒng),客戶端用的是Java客戶端。Mongodb版本是mongodb-linux-x86_64-2.4.6.tgz。ReplicaSet中文翻譯叫做副本集,其實(shí)簡單來說就是集群當(dāng)中包含了多份數(shù)據(jù),保證主節(jié)點(diǎn)掛掉了,備節(jié)點(diǎn)能繼續(xù)提供數(shù)據(jù)服務(wù),提供的前提就是數(shù)據(jù)需要和主節(jié)點(diǎn)一致,它的架構(gòu)圖如下:Mongodb(A)MachinesMongodb(A)MachinesMongodb(M)表示主節(jié)點(diǎn),Mongodb(S)表示備節(jié)點(diǎn),Mongodb(A)表示仲裁節(jié)點(diǎn)。主備節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù),仲裁節(jié)點(diǎn)不存儲(chǔ)數(shù)據(jù)??蛻舳送瑫r(shí)連接主節(jié)點(diǎn)與備節(jié)點(diǎn),不連接仲裁節(jié)點(diǎn)。默認(rèn)設(shè)置下,主節(jié)點(diǎn)提供所有增刪查改服務(wù),備節(jié)點(diǎn)不提供任何服務(wù)。但是可以通過設(shè)置使備節(jié)點(diǎn)提供查詢服務(wù),這樣就可以減少主節(jié)點(diǎn)的壓力,當(dāng)客戶端進(jìn)行數(shù)據(jù)查詢時(shí),請求自動(dòng)轉(zhuǎn)到備節(jié)點(diǎn)上。這個(gè)設(shè)置叫做ReadPreferenceModes,同時(shí)Java客戶端提供了簡單的配置方式,可以不必直接對數(shù)據(jù)庫進(jìn)行操作。仲裁節(jié)點(diǎn)是一種特殊的節(jié)點(diǎn),它本身并不存儲(chǔ)數(shù)據(jù),主要的作用是決定哪一個(gè)備節(jié)點(diǎn)在主節(jié)點(diǎn)掛掉之后提升為主節(jié)點(diǎn),所以客戶端不需要連接此節(jié)點(diǎn)。這里雖然只有一個(gè)備節(jié)點(diǎn),但是仍然需要一個(gè)仲裁節(jié)點(diǎn)來提升備節(jié)點(diǎn)級別。我開始也不相信必須要有仲裁節(jié)點(diǎn),但是自己也試過沒仲裁節(jié)點(diǎn)的話,主節(jié)點(diǎn)掛了備節(jié)點(diǎn)還是備節(jié)點(diǎn),所以咱們還是需要它的。下面是具體的搭建步驟:3.1 下載解壓在MOGODB主站點(diǎn)下載mongodb-linux-x86_64-2.4.6.tgz文件,在102,103,104上分別執(zhí)行以下操作cd/usr/localtarzxvfmongodb-linux-x86_64-2.4.6.tgzmvmongodb-linux-x86_64-2.4.6mongodb建立數(shù)據(jù)文件夾102下執(zhí)行:mkdir-p/mongodb/datamkdir-p/mongodb/log103下執(zhí)行:mkdir-p/mongodb/datamkdir-p/mongodb/log104下執(zhí)行:mkdir-p/mongodb/datamkdir-p/mongodb/log#建立配置文件編輯環(huán)境變量,在102,103,104上分別執(zhí)行:cd/rootvi.bash_profilePATH=$PATH:$HOME/bin:/usr/local/mongodb/binsource.bash_profile由于配置比較多,所以我們將配置寫到文件里,每個(gè)節(jié)點(diǎn)一個(gè)配置文件。102配置文件:mongod.confdbpath=/mongodb/datalogpath=/mongodb/log/master.logpidfilepath=/mongodb/master.piddirectoryperdb=truelogappend=truereplSet=testrsport=27017oplogSize=10000fork=truenoprealloc=true103配置文件:mongod.confdbpath=/mongodb/datalogpath=/mongodb/log/slaver.logpidfilepath=/mongodb/slaver.piddirectoryperdb=truelogappend=truereplSet=testrsport=27017oplogSize=10000fork=truenoprealloc=true104配置文件:#mongod.confdbpath=/mongodb/datalogpath=/mongodb/log/arbiter.logpidfilepath=/mongodb/arbiter.piddirectoryperdb=truelogappend=truereplSet=testrsport=27017oplogSize=10000fork=truenoprealloc=true參數(shù)解釋:dbpath:數(shù)據(jù)存放目錄logpath:日志存放路徑pidfilepath:進(jìn)程文件,方便停止mongodbdirectoryperdb:為每一個(gè)數(shù)據(jù)庫按照數(shù)據(jù)庫名建立文件夾存放logappend:以追加的方式記錄日志replSet:replicaset的名字bind_ip:mongodb所綁定的ip地址port:mongodb進(jìn)程所使用的端口號,默認(rèn)為27017oplogSize:mongodb操作日志文件的最大大小。單位為Mb,默認(rèn)為硬盤剩余空間的5%fork:以后臺(tái)方式運(yùn)行進(jìn)程noprealloc:不預(yù)先分配存儲(chǔ)3.4啟動(dòng)mongodb102,103,104上分別執(zhí)行:mongod-fmongod.confMongDB集群環(huán)境搭建說明文檔注意配置文件的路徑一定要保證正確,可以是相對路徑也可以是絕對路徑。3.5配置主,備,仲裁節(jié)點(diǎn)可以通過客戶端連接mongodb,也可以直接在三個(gè)節(jié)點(diǎn)中選擇一個(gè)連接mongodb。在102上執(zhí)行:./mongo #ip和port是某個(gè)節(jié)點(diǎn)的地址>useadmin>cfg={_id:"testrs",members:[{_id:0,host:'10.12.23.102:27017',priority:2},{_id:1,host:'10.12.23.103:27017',priority:1},{_id:2,host:'10.12.23.104:27017',arbiterOnly:true}]};>rs.initiate(cfg) #使配置生效cfg是可以任意的名字,當(dāng)然最好不要是mongodb的關(guān)鍵字,conf,config都可以。最外層的_id表示replicaset的名字,members里包含的是所有節(jié)點(diǎn)的地址以及優(yōu)先級。優(yōu)先級最高的即成為主節(jié)點(diǎn),即這里的10.12.23.102:27017。特別注意的是,對于仲裁節(jié)點(diǎn),需要有個(gè)特別的配置一一arbiterOnly:true。這個(gè)千萬不能少了,不然主備模式就不能生效。配置的生效時(shí)間根據(jù)不同的機(jī)器配置會(huì)有長有短,配置不錯(cuò)的話基本上十幾秒內(nèi)就能生效,有的配置需要一兩分鐘。如果生效了,執(zhí)行rs.status()命令會(huì)看到如下信息:testrs:PRIMARY>rs.status();{"set":"testrs","date":ISODate("2013-09-22T03:12:02Z"),"myState":1,"members":[{"_id":0,"name":"10.12.23.102:27017","health":1,"state":1,"stateStr":"PRIMARY","uptime":781680,"optime":Timestamp(1379818896,1),"optimeDate":ISODate("2013-09-22T03:01:36Z"),"self":true},{"_id":1,"name":"10.12.23.103:27017","health":1,"state":2,"stateStr":"SECONDARY","uptime":781271,"optime":Timestamp(1379818896,1),"optimeDate":ISODate("2013-09-22T03:01:36Z"),"lastHeartbeat":ISODate("2013-09-22T03:12:02Z"),"lastHeartbeatRecv":ISODate("2013-09-22T03:12:02Z"),"pingMs":0,"syncingTo":"10.12.23.102:27017"},{"_id":2,"name":"10.12.23.104:27017","health":1,"state":7,"stateStr":"ARBITER","uptime":781271,"lastHeartbeat":ISODate("2013-09-22T03:12:02Z"),"lastHeartbeatRecv":ISODate("2013-09-22T03:12:02Z"),"pingMs":0}],"ok":1如果配置正在生效,其中會(huì)包含如下信息:"stateStr":"RECOVERING"同時(shí)可以查看對應(yīng)節(jié)點(diǎn)的日志,發(fā)現(xiàn)正在等待別的節(jié)點(diǎn)生效或者正在分配數(shù)據(jù)文件。至此,基本上已經(jīng)完成了集群的所有搭建工作。3.6認(rèn)證目前暫時(shí)采用KEYFILE的認(rèn)證方式。在所有節(jié)點(diǎn)admin數(shù)據(jù)庫中建立一個(gè)可讀寫的數(shù)據(jù)庫賬號,用戶名和密碼保持一致mongouseadmin;db.addUser("admin","admin");db.system.users.find();在所有節(jié)點(diǎn)建立KEYFILE文件:cd/data/mongodb/opensslrand-base64753>keyFilechmod600keyFile啟動(dòng)MONGODB/usr/local/mongodb/bin/mongod--keyFile/data/mongodb/keyFile-f/data/mongodb/mongod.conf添加仲裁節(jié)點(diǎn)在服務(wù)器上建立目錄mkdir/data/arb啟動(dòng)MONGO服務(wù)mongod--port30000--dbpath/data/arb--replSettestrs執(zhí)行添加命令rs.addArb(〃hostname:30000〃)添加從節(jié)點(diǎn)方式一在服務(wù)器上建立目錄mkdir/data/sed啟動(dòng)MONGO服務(wù)mongod--port30000--dbpath/data/sed--replSettestrs在主節(jié)點(diǎn)執(zhí)行添加命令rs.add("hostname:27021");方式二鎖定已有的一個(gè)從庫,并將緩存中的數(shù)據(jù)寫入到磁盤useadmindb.runCommand({"fsync”:1,"lock”:1})拷貝被鎖定從庫的數(shù)據(jù)文件到新建從庫的數(shù)據(jù)目錄解鎖從庫rWEffi匣db.$cmd.sys.unlock.findOne()db.currentOp()啟動(dòng)新從庫./mongod--replSetrs1--keyFile/data/set/key/r4--fork--port28014--dbpath/data/set/r4--logpath=/data/set/log/r4.log--logappend--fastsyncrs.add("localhost:27017")3.9修改IP地址當(dāng)服務(wù)器修改IP后,復(fù)制集中的IP信息需要修改,否則會(huì)報(bào)如下錯(cuò)誤:>rs.status();rs.status();{"startupStatus":1,"ok":0,"errmsg":"loadinglocal.system.replsetconfig(LOADINGCONFIG)"具體修改操作如下:mongo127.0.0.1:27020useadmincfg={_id:"testrs",members:[{_id:0,host:'172.23.166.23:27020',priority:2},{_id:1,host:'172.23.166.23:27018',priority:1},{_id:2,host:'172.23.166.23:27019',arbiterOnly:true}]};rs.reconfig(cfg,{force:true})稍等一會(huì)再次查看:testrs:PRIMARY>rs.status()rs.status(){"set":"testrs","date":ISODate("2015-05-27T06:46:16Z"),"myState":1,"members":[{"_id":0,"name":"172.23.166.23:27020","health":1,"state":1,"stateStr":"PRIMARY","uptime":903,"optime":Timest

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論