mongodb集群搭建

mongodb集群搭建

前置準(zhǔn)備(安裝包)

1.下載社區(qū)版 MongoDB 4.1.3 
        去官網(wǎng)下載對應(yīng)的MongoDB 然后上傳到Linux虛擬機(jī) 
2.將壓縮包解壓即可 
        tar -zxvf MongoDB-linux-x86_64-4.1.3.tgz 
第三步和第四步可不操作
3.啟動
        ./bin/mongod 
4.指定配置文件方式的啟動
        ./bin/mongod -f mongo.conf 
        配置文件樣例: 
        dbpath=/data/mongo/ 
        port=27017 
        bind_ip=0.0.0.0 
        fork=true 
        logpath = /data/mongo/MongoDB.log 
        logappend = true 
        auth=false

以下是百度云盤的jar地址

image-20210129101045451.png
https://pan.baidu.com/s/1t4mGWxq4L9sDtjwnnGsnuQ
z9ek

一劝萤、架構(gòu)

image-20210129110615733.png

二、配置

2.1 配置 并啟動config 節(jié)點(diǎn)集群

節(jié)點(diǎn)1 mongo_37017.conf

# 進(jìn)入mondb 解壓后目錄 
cd /root/mongodb-linux-x86_64-4.1.3
vim  mongo_37017.conf
# 主節(jié)點(diǎn)配置 
dbpath=/data/mongo/data/server1 
bind_ip=0.0.0.0 
port=37017 
fork=true 
logpath=/data/mongo/logs/server1.log 
replSet=lagouCluster 

節(jié)點(diǎn)2 mongo_37018.conf

 cp mongo_37017.conf mongo_37018.conf
 vim mongo_37018.conf
 修改
dbpath=/data/mongo/data/server2
 logpath=/data/mongo/logs/server2.log 
 port = 37018 

節(jié)點(diǎn)3 confifig-17019.conf

  cp mongo_37017.conf mongo_37019.conf
 vim mongo_37019.conf
 修改
dbpath=/data/mongo/data/server3
 logpath=/data/mongo/logs/server3.log 
 port = 37019 

創(chuàng)建日志目錄

#-p 是多級創(chuàng)建
mkdir /data/mongo/data/server1 -p
mkdir /data/mongo/data/server2 -p
mkdir /data/mongo/data/server3 -p
mkdir /data/mongo/logs -p

2.2 啟動配置節(jié)點(diǎn)

./bin/mongod -f mongo_37017.conf
./bin/mongod -f mongo_37018.conf
./bin/mongod -f mongo_37019.conf

2.3 初始化節(jié)點(diǎn)配置

# 進(jìn)入mongo 節(jié)點(diǎn)
./bin/mongo --port 37017
# 配置節(jié)點(diǎn)集群,注意host 和端口號改成自己的服務(wù)器
var cfg ={"_id":"lagouCluster", "protocolVersion" : 1, "members":[ {"_id":1,"host":"192.168.31.100:37017"}, {"_id":2,"host":"192.168.31.100:37018"}, {"_id":3,"host":"192.168.31.100:37019"}] };
rs.initiate(cfg)
rs.status()
image-20210129112331393.png

2.4 查看集群狀態(tài):rs.status()

{
        "set" : "lagouCluster",
        "date" : ISODate("2021-01-29T03:21:53.946Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "syncingTo" : "",
        "syncSourceHost" : "",
        "syncSourceId" : -1,
        "heartbeatIntervalMillis" : NumberLong(2000),
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1611890503, 1),
                        "t" : NumberLong(1)
                },
                "readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1611890503, 1),
                        "t" : NumberLong(1)
                },
                "appliedOpTime" : {
                        "ts" : Timestamp(1611890503, 1),
                        "t" : NumberLong(1)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1611890503, 1),
                        "t" : NumberLong(1)
                }
        },
        "lastStableRecoveryTimestamp" : Timestamp(1611890502, 1),
        "lastStableCheckpointTimestamp" : Timestamp(1611890502, 1),
        "members" : [
                {
                        "_id" : 1,
                        "name" : "192.168.31.100:37017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 548,
                        "optime" : {
                                "ts" : Timestamp(1611890503, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2021-01-29T03:21:43Z"),
                        "syncingTo" : "",
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "could not find member to sync from",
                        "electionTime" : Timestamp(1611890500, 1),
                        "electionDate" : ISODate("2021-01-29T03:21:40Z"),
                        "configVersion" : 1,
                        "self" : true,
                        "lastHeartbeatMessage" : ""
                },
                {
                        "_id" : 2,
                        "name" : "192.168.31.100:37018",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 23,
                        "optime" : {
                                "ts" : Timestamp(1611890503, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1611890503, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2021-01-29T03:21:43Z"),
                        "optimeDurableDate" : ISODate("2021-01-29T03:21:43Z"),
                        "lastHeartbeat" : ISODate("2021-01-29T03:21:52.746Z"),
                        "lastHeartbeatRecv" : ISODate("2021-01-29T03:21:53.243Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncingTo" : "192.168.31.100:37017",
                        "syncSourceHost" : "192.168.31.100:37017",
                        "syncSourceId" : 1,
                        "infoMessage" : "",
                        "configVersion" : 1
                },
                {
                        "_id" : 3,
                        "name" : "192.168.31.100:37019",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 23,
                        "optime" : {
                                "ts" : Timestamp(1611890503, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1611890503, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2021-01-29T03:21:43Z"),
                        "optimeDurableDate" : ISODate("2021-01-29T03:21:43Z"),
                        "lastHeartbeat" : ISODate("2021-01-29T03:21:52.746Z"),
                        "lastHeartbeatRecv" : ISODate("2021-01-29T03:21:53.243Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncingTo" : "192.168.31.100:37017",
                        "syncSourceHost" : "192.168.31.100:37017",
                        "syncSourceId" : 1,
                        "infoMessage" : "",
                        "configVersion" : 1
                }
        ],
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1611890503, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        },
        "operationTime" : Timestamp(1611890503, 1)
}

2.4 節(jié)點(diǎn)的動態(tài)增刪

#刪除slave 節(jié)點(diǎn) 
rs.remove("192.168.31.100:37019")
#增加節(jié)點(diǎn) 
rs.add("192.168.31.100:37019") 

2.5 測試

主庫測試(可以添加拧簸,查詢)

use lg_resume
db.lg_resume.insert({name:'test',salary:1234});
db.lg_resume.find();

進(jìn)入從庫測試(無法查詢寺旺,可以添加

#新開啟一個虛擬機(jī)窗口
./bin/mongo --port 37019
use lg_resume
db.lg_resume.find()
image-20210129112810934.png

使用rs.slaveOk解決

rs.slaveOk()
db.lg_resume.find()
image-20210129113107082.png

主節(jié)點(diǎn)宕機(jī)測試

rs.status() 查看主節(jié)點(diǎn)
rs.status()
image-20210129113728232.png
開啟一個新虛擬機(jī)窗口
ps -ef |grep java
image-20210129113833563.png
停用主機(jī)
kill -9 10201
./bin/mongo --port 37019
image-20210129114018923.png
此時發(fā)現(xiàn)主節(jié)點(diǎn)自動變成了37018了
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鞍陨,隨后出現(xiàn)的幾起案子步淹,更是在濱河造成了極大的恐慌,老刑警劉巖诚撵,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缭裆,死亡現(xiàn)場離奇詭異,居然都是意外死亡寿烟,警方通過查閱死者的電腦和手機(jī)澈驼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來韧衣,“玉大人盅藻,你說我怎么就攤上這事〕┟” “怎么了氏淑?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長硕噩。 經(jīng)常有香客問我假残,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任辉懒,我火速辦了婚禮阳惹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘眶俩。我一直安慰自己莹汤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布颠印。 她就那樣靜靜地躺著纲岭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪线罕。 梳的紋絲不亂的頭發(fā)上止潮,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機(jī)與錄音钞楼,去河邊找鬼喇闸。 笑死,一個胖子當(dāng)著我的面吹牛询件,可吹牛的內(nèi)容都是我干的燃乍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宛琅,長吁一口氣:“原來是場噩夢啊……” “哼橘沥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起夯秃,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痢艺,沒想到半個月后仓洼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡堤舒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年色建,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舌缤。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡箕戳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出国撵,到底是詐尸還是另有隱情陵吸,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布介牙,位于F島的核電站壮虫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜囚似,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一剩拢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饶唤,春花似錦徐伐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至熬尺,卻和暖如春摸屠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粱哼。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工季二, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人揭措。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓胯舷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绊含。 傳聞我的和親對象是個殘疾皇子桑嘶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355