濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > MongoDB入門教程之主從復(fù)制配置詳解

MongoDB入門教程之主從復(fù)制配置詳解

熱門標(biāo)簽:福州電銷機(jī)器人源代碼 高德地圖標(biāo)注商戶位置 徐州ai電銷機(jī)器人原理 南京400電話怎樣辦理 企業(yè)智能外呼系統(tǒng)價(jià)格多少 機(jī)器人外呼系統(tǒng)軟件存在問題 智能電銷機(jī)器人銷售話術(shù) 沈陽營(yíng)銷電銷機(jī)器人招商 兗州電話外呼營(yíng)銷系統(tǒng)

    從這一篇開始我們主要討論mongodb的部署技術(shù)。

    我們知道sql server能夠做到讀寫分離,雙機(jī)熱備份和集群部署,當(dāng)然mongodb也能做到,實(shí)際應(yīng)用中我們不希望數(shù)據(jù)庫采用單點(diǎn)部署,

如果碰到數(shù)據(jù)庫宕機(jī)或者被毀滅性破壞那是多么的糟糕。

 一:主從復(fù)制

1: 首先看看模型圖

  2: 從上面的圖形中我們可以分析出這種架構(gòu)有如下的好處:

     1>  數(shù)據(jù)備份。

     2>  數(shù)據(jù)恢復(fù)。

     3>  讀寫分離。

 3:下面我們就一一實(shí)踐

     實(shí)際應(yīng)用中我們肯定是多服務(wù)器部署,限于自己懶的裝虛擬機(jī),就在一臺(tái)機(jī)器上實(shí)踐了。

第一步:我們把mongodb文件夾放在D盤和E盤,模擬放在多服務(wù)器上。

第二步:?jiǎn)?dòng)D盤上的mongodb,把該數(shù)據(jù)庫指定為主數(shù)據(jù)庫,其實(shí)命令很簡(jiǎn)單:>mongodb --dbpath='XXX' --master,

           端口還是默認(rèn)的27017.

第三步:同樣的方式啟動(dòng)E盤上的mongodb,指定該數(shù)據(jù)庫為從屬數(shù)據(jù)庫,命令也很簡(jiǎn)單,當(dāng)然我們要換一個(gè)端口,比如:8888。

source 表示主數(shù)據(jù)庫的地址。

復(fù)制代碼 代碼如下:

>mongod --dbpath=xxxx --port=8888 --slave --source=127.0.0.1:27017

第四步:從圖中的紅色區(qū)域我們發(fā)現(xiàn)了一條:“applied 1 operations"這樣的語句,并且發(fā)生的時(shí)間相隔10s,也就說明從屬數(shù)據(jù)庫每10s

           就向主數(shù)據(jù)庫同步數(shù)據(jù),同步依據(jù)也就是尋找主數(shù)據(jù)庫的”O(jiān)pLog“日志,可以在圖中紅色區(qū)域內(nèi)發(fā)現(xiàn)”sync_pullOpLog“字樣。

           接下來我們要做的就是測(cè)試,驚訝的發(fā)現(xiàn)數(shù)據(jù)已經(jīng)同步更新,爽啊。

 4:  如果我還想增加一臺(tái)從屬數(shù)據(jù)庫,但是我不想在啟動(dòng)時(shí)就指定,而是后期指定,那么mongodb可否做的到呢?答案肯定是可以的。

      我們的主或者從屬數(shù)據(jù)庫中都有一個(gè)叫做local的集合,主要是用于存放內(nèi)部復(fù)制信息。

      好,那么我們就試一下,我在F盤再拷貝一份mongodb的運(yùn)行程序,cmd窗口好多啊,大家不要搞亂了。

    

    看上面的log,提示沒有主數(shù)據(jù)庫,沒關(guān)系,某一天我們良心發(fā)現(xiàn),給他后期補(bǔ)貼一下,哈哈,再開一個(gè)cmd窗口,語句也就是

    在sources中add一個(gè)host地址,最后發(fā)現(xiàn)數(shù)據(jù)也同步到127.0.0.1:5555這臺(tái)從屬數(shù)據(jù)庫中....

    

 5: 讀寫分離

     這種手段在大一點(diǎn)的架構(gòu)中都有實(shí)現(xiàn),在mongodb中其實(shí)很簡(jiǎn)單,在默認(rèn)的情況下,從屬數(shù)據(jù)庫不支持?jǐn)?shù)據(jù)的讀取,但是沒關(guān)系,

在驅(qū)動(dòng)中給我們提供了一個(gè)叫做“slaveOkay"來讓我們可以顯示的讀取從屬數(shù)據(jù)庫來減輕主數(shù)據(jù)庫的性能壓力,這里就不演示了。

 二:副本集

    這個(gè)也是很牛X的主從集群,不過跟上面的集群還是有兩點(diǎn)區(qū)別的。

      1>:  該集群沒有特定的主數(shù)據(jù)庫。

      2>:  如果哪個(gè)主數(shù)據(jù)庫宕機(jī)了,集群中就會(huì)推選出一個(gè)從屬數(shù)據(jù)庫作為主數(shù)據(jù)庫頂上,這就具備了自動(dòng)故障恢復(fù)功能,很牛X的啊。

  好,我們現(xiàn)在就來試一下,首先把所有的cmd窗口關(guān)掉重新來,清掉db下的所有文件。

 第一步:  既然我們要建立集群,就得取個(gè)集群名字,這里就取我們的公司名shopex, --replSet表示讓服務(wù)器知道shopex下還有其他數(shù)據(jù)庫,

            這里就把D盤里面的mongodb程序打開,端口為2222。指定端口為3333是shopex集群下的另一個(gè)數(shù)據(jù)庫服務(wù)器。

 第二步:  既然上面說3333是另一個(gè)數(shù)據(jù)庫服務(wù)器,不要急,現(xiàn)在就來開,這里把E盤的mongodb程序打開。

 第三步:  ok,看看上面的日志紅色區(qū)域,似乎我們還沒有做完,是的,log信息告訴我們要初始化一下“副本集“,既然日志這么說,那我也就

             這么做,隨便連接一下哪個(gè)服務(wù)器都行,不過一定要進(jìn)入admin集合。

 第四步: 開啟成功后,我們要看看誰才能成為主數(shù)據(jù)庫服務(wù)器,可以看到端口為2222的已經(jīng)成為主數(shù)據(jù)庫服務(wù)器。

 第五步:我們知道sql server里面有一個(gè)叫做仲裁服務(wù)器,那么mongodb中也是有的,跟sql server一樣,仲裁只參與投票選舉,這里我們

           把F盤的mongodb作為仲裁服務(wù)器,然后指定shopex集群中的任一個(gè)服務(wù)器端口,這里就指定2222。

 然后我們?cè)赼dmin集合中使用rs.addArb()追加即可。

追加好了之后,我們使用rs.status()來查看下集群中的服務(wù)器狀態(tài),圖中我們可以清楚的看到誰是主,還是從,還是仲裁。

 不是說該集群有自動(dòng)故障恢復(fù)嗎?那么我們就可以來試一下,在2222端口的cmd服務(wù)器按Ctrl+C來KO掉該服務(wù)器,立馬我們發(fā)現(xiàn)

在3333端口的從屬服務(wù)器即可頂上,最后大家也可以再次使用rs.status()來看下集群中服務(wù)器的狀態(tài)。

您可能感興趣的文章:
  • mongodb中非常好用的Aggregate入門教程
  • MongoDB入門教程之C#驅(qū)動(dòng)操作實(shí)例
  • MongoDB入門教程之常用的運(yùn)維技術(shù)介紹
  • MongoDB入門教程之分片技術(shù)詳解
  • MongoDB入門教程之索引操作淺析
  • MongoDB入門教程之聚合和游標(biāo)操作介紹
  • MongoDB入門教程之細(xì)說MongoDB數(shù)據(jù)庫的增刪查改操作
  • MongoDB入門教程之Windows下的MongoDB數(shù)據(jù)庫安裝圖解
  • MongoDB入門教程(包含安裝、常用命令、相關(guān)概念、使用技巧、常見操作等)
  • MongoDB 簡(jiǎn)單入門教程(安裝、基本概念、創(chuàng)建用戶)

標(biāo)簽:吉安 邯鄲 大理 昭通 景德鎮(zhèn) 本溪 丹東 鶴崗

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB入門教程之主從復(fù)制配置詳解》,本文關(guān)鍵詞  MongoDB,入門教程,之,主從,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB入門教程之主從復(fù)制配置詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于MongoDB入門教程之主從復(fù)制配置詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    吉林市| 洛阳市| 阿坝| 永顺县| 田林县| 江华| 墨江| 松桃| 顺义区| 江油市| 汤阴县| 潢川县| 马鞍山市| 尤溪县| 公主岭市| 宿迁市| 介休市| 股票| 陇南市| 金堂县| 辽中县| 临桂县| 长寿区| 密云县| 来安县| 雅江县| 延安市| 石河子市| 苗栗县| 宕昌县| 衡山县| 舞钢市| 巨鹿县| 休宁县| 无极县| 平安县| 琼海市| 襄垣县| 安化县| 微博| 阜新市|