Mongodb叢集搭建過程及常見錯誤

來源:互聯網
上載者:User

標籤:blog   http   os   io   使用   ar   for   檔案   資料   

Replica SetsMongoDB 支援在多個機器中通過非同步複製達到容錯移轉和實現冗餘。多機器中同一時刻只 有一台是用於寫操作。正是由於這個情況,為 MongoDB 提供了資料一致性的保障。擔當 Primary 角色的機器能把讀操作分發給 slave。Replica Sets的結構非常類似一個叢集。因 為它確實跟叢集實現的作用是一樣的, 其中一個節點如果出現故障, 其它節點馬上會將業務接過來而無須停機操作。下面以本機為例介紹一下叢集的部署過程,以及部署過程中常見的注意點及錯誤本例環境是Linux作業系統,mongodb版本:mongodb-linux-x86_64-2.6.1.tgz,Vmwre虛擬機器,虛擬機器IP:192.168.169.129,叢集以本機不同連接埠類比三台伺服器。1.叢集主要分為三個節點master主節點,slaver備用節點,arbiter仲裁節點建立資料檔案夾
mkdir -p /mongodb/data/mastermkdir -p /mongodb/data/slavermkdir -p /mongodb/data/arbiter

 

ps:三個目錄分別對應主,備,仲裁節點2.建立設定檔夾1)master.conf    開啟編輯器:
vi /etc/master.conf

按i 輸入下列配置

dbpath=/home/mongodb/data/master  logpath=/home/mongodb/log/master.loglogappend=truereplSet=rep1port=10000fork=truejournal=true

完成之後按esc  》》 :  >>wq>>斷行符號

2)slaver.conf編輯器開啟和儲存按上邊的步驟,下邊唯寫詳細內容
dbpath=/home/mongodb/data/slaverlogpath=/home/mongodb/log/slaver.loglogappend=truereplSet=rep1port=10001fork=truejournal=true

3)arbiter.conf

dbpath=/home/mongodb/data/arbiterlogpath=/home/mongodb/log/arbiter.loglogappend=truereplSet=rep1port=10002fork=truejournal=truesmallfiles=true

參數解釋:

dbpath:資料存放目錄

logpath:日誌存放路徑

logappend:以追加的方式記錄日誌

replSet:replica set的名字

port:mongodb進程所使用的連接埠號碼,預設為27017

fork:以後台方式運行進程

journal:寫日誌

smallfiles:當提示空間不夠時添加此參數

其他參數

pidfilepath:進程檔案,方便停止mongodb

directoryperdb:為每一個資料庫按照資料庫名建立檔案夾存放

bind_ip:mongodb所綁定的ip地址

oplogSize:mongodb動作記錄檔案的最大大小。單位為Mb,預設為硬碟剩餘空間的5%

noprealloc:不預先分配儲存

3.啟動Mongodb   

cd /home/mongodb/bin

 

啟動服務

./mongod -f /etc/master.conf./mongod -f /etc/slaver.conf./mongod -f /etc/arbiter.conf

 有這樣的提示說明啟動成功

如果是下列的提示說明啟動失敗

啟動失敗的原因有很多,檢查完設定檔,如果沒有錯誤,可開啟相應的設定檔查看詳細的錯誤資訊

cat /etc/master.conf

最常見的一個錯誤就是磁碟空間不足,會提示這樣的錯誤

因為Mongodb的記錄檔是成2g的增長,所以所需空間比較大,這時你可以在設定檔裡添加這樣的一個配置smallfiles=true。全部三個服務全部啟動成功之後

4.配置主(master),備(slaver),仲裁(arbiter)節點

可以通過用戶端串連mongodb,也可以直接在三個節點中選擇一個串連mongodb。

./mongo 192.168.169.129:10000   #ip和port是某個節點的地址

>use admin

>cfg={ _id:"rep1", members:[ {_id:0,host:‘192.168.169.129:10000‘,priority:2}, {_id:1,host:‘192.168.169.129:10001‘,priority:1},{_id:2,host:‘192.168.169.129:10002‘,arbiterOnly:true}] };>rs.initiate(cfg) #使配置生效{        "set" : "rep1",        "date" : ISODate("2014-09-05T02:44:43Z"),        "myState" : 1,        "members" : [                {                        "_id" : 0,                        "name" : "192.168.169.129:10000",                        "health" : 1,                        "state" : 1,                        "stateStr" : "PRIMARY",                        "uptime" : 200,                        "optime" : Timestamp(1357285565000, 1),                        "optimeDate" : ISODate("2013-01-04T07:46:05Z"),                        "self" : true                },                {                        "_id" : 1,                        "name" : "192.168.169.129:10001",                        "health" : 1,                        "state" : 2,                        "stateStr" : "SECONDARY",                        "uptime" : 200,                        "optime" : Timestamp(1357285565000, 1),                        "optimeDate" : ISODate("2013-01-04T07:46:05Z"),                        "lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),                        "pingMs" : 0                },                {                        "_id" : 2,                        "name" : "192.168.169.129:10002",                        "health" : 1,                        "state" : 7,                        "stateStr" : "ARBITER",                        "uptime" : 200,                        "lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),                        "pingMs" : 0                }        ],        "ok" : 1} 配置過程中可能還會出現其他的一些錯誤,不過都可以去查看相應的記錄檔,去解決。

Mongodb叢集搭建過程及常見錯誤

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.