麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > MongoDB > 正文

mongodb主從復(fù)制_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

2020-10-29 18:45:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

我們知道sql server能夠做到讀寫分離,雙機(jī)熱備份和集群部署,當(dāng)然mongodb也能做到,實(shí)際應(yīng)用中我們不希望數(shù)據(jù)庫(kù)采用單點(diǎn)部署,如果碰到數(shù)據(jù)庫(kù)宕機(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ù)庫(kù)指定為主數(shù)據(jù)庫(kù),其實(shí)命令很簡(jiǎn)單:>mongodb --dbpath='XXX' --master,

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

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

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

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

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

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

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

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

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

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

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

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

5: 讀寫分離

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

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

二:副本集

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产在线观看一区二区三区 | 特级黄色影院 | 国产乱一区二区三区视频 | 国产精品久久久久一区二区 | 久久国语对白 | 成人在线免费小视频 | 久久久久久亚洲综合影院红桃 | www.成人在线视频 | 亚洲男人天堂 | 91九色网 | 国产亚洲精品一区二区三区 | 色视频一区二区 | 欧美日韩亚洲另类 | 色播视频网站 | 男男羞羞视频网站国产 | 毛片视频免费观看 | 国产精选电影免费在线观看 | 国产亚洲高清视频 | 色啪综合 | 国产成人精品免费视频大全最热 | 免费a级黄色片 | 羞羞视频一区 | 一级黄色片在线看 | 天天色图片 | 中文区永久区 | 国产精品久久国产精麻豆96堂 | 88xx成人精品视频 | 欧美福利视频一区二区三区 | 操操操日日日干干干 | 粉嫩粉嫩一区二区三区在线播放 | 看黄在线观看 | 99精品视频免费看 | 1级黄色毛片 | 成人午夜免费福利 | 男女无遮挡羞羞视频 | 久久精品中文字幕一区 | 黑人一级片 | 成片免费观看视频大全 | 久久久亚洲欧美综合 | 7777奇米成人四色影视 | 亚洲精品久久久久久久久久 |