mongodb副本集_设置MongoDB副本集分为4个步骤
mongodb副本集
介紹
在詳細(xì)介紹配置MongoDB副本集之前,讓我簡(jiǎn)要介紹一下它們:
- 副本集是Mongodb數(shù)據(jù)庫(kù)提供的功能,可實(shí)現(xiàn)高可用性和自動(dòng)故障轉(zhuǎn)移。
- 它是一種傳統(tǒng)的主從配置,但具有自動(dòng)故障轉(zhuǎn)移功能。
- 基本上,它是mongod實(shí)例的組/集群,它們相互通信,相互復(fù)制以提供高可用性并進(jìn)行自動(dòng)故障轉(zhuǎn)移
- 基本上,副本集中至少存在2個(gè),最多可以存在12個(gè)mongod實(shí)例
- 在副本集中,存在以下類(lèi)型的服務(wù)器。 首先,一臺(tái)服務(wù)器始終是主要服務(wù)器。
- Primary:存儲(chǔ)數(shù)據(jù),所有寫(xiě)/讀操作均從任何客戶(hù)端進(jìn)行到該服務(wù)器。
- 它提供了自動(dòng)故障轉(zhuǎn)移功能,這意味著它無(wú)需人工干預(yù)即可將另一臺(tái)服務(wù)器設(shè)置為主服務(wù)器,并且具有內(nèi)部機(jī)制來(lái)選舉新的主服務(wù)器。
- 在副本集中,如果主服務(wù)器由于網(wǎng)絡(luò)錯(cuò)誤而停機(jī),或者副本集中的其他服務(wù)器無(wú)法訪(fǎng)問(wèn)主服務(wù)器,或者主服務(wù)器變得無(wú)響應(yīng),則由所有服務(wù)器在內(nèi)部觸發(fā)選舉新的主服務(wù)器的選擇機(jī)制,這是非常自動(dòng)的。
在本文中,我將通過(guò)4個(gè)簡(jiǎn)單步驟向您展示3個(gè)成員/節(jié)點(diǎn)群集副本集的配置。 在此副本集配置中,我們將創(chuàng)建兩臺(tái)數(shù)據(jù)服務(wù)器,其中一臺(tái)將為主服務(wù)器,另一臺(tái)將為輔助服務(wù)器,而另一臺(tái)非仲裁服務(wù)器。 因此,讓我們繼續(xù)按照以下4個(gè)步驟配置副本:
步驟1:設(shè)置副本集的每個(gè)實(shí)例
正如我在上一篇文章中討論的那樣,使用以下信息創(chuàng)建和設(shè)置3個(gè)新的mongodb服務(wù)器實(shí)例實(shí)例,但不要啟動(dòng)這些服務(wù)器實(shí)例:
- 服務(wù)器1
- 服務(wù)器2
- 服務(wù)器3
步驟2:修改mongodb.conf以包括副本集信息
編輯每個(gè)服務(wù)器的mongod.conf以包括以下屬性:
- replSet =副本集的唯一名稱(chēng),賦予所有成員
- rest =為管理網(wǎng)頁(yè)啟用休息界面
您可以為副本集指定任何名稱(chēng),但請(qǐng)確保所有成員名稱(chēng)相同。 繼續(xù)給你想要的名字。 在這里,我使用的是“ damon”
例如,將以下內(nèi)容追加到mongod.conf文件中
replSet=damon rest=true第三步:啟動(dòng)所有服務(wù)器
完成必要的配置后,繼續(xù)以任意順序啟動(dòng)服務(wù)器
rs1 >> mongod -f \rs1\mongod.conf rs2 >> mongod -f \rs2\mongod.conf rs3 >> mongod -f \rs3\mongod.conf步驟4:配置服務(wù)器以包含在副本集中
現(xiàn)在,所有服務(wù)器都已啟動(dòng),但它們沒(méi)有相互連接。 換句話(huà)說(shuō),它們不是副本集的一部分。 因此,為此,我們需要執(zhí)行以下操作。 同樣,我們將創(chuàng)建兩個(gè)數(shù)據(jù)服務(wù)器,即一個(gè)主服務(wù)器,另一個(gè)輔助服務(wù)器和一個(gè)仲裁服務(wù)器。 現(xiàn)在,使用MongoDB二進(jìn)制文件中提供的mongo shell連接到任何一臺(tái)服務(wù)器。
這里。 讓我們使用mongodb shell連接到服務(wù)器rs1
rs1 > /rs1/bin/mongo.exe --port 27017之后,您將得到提示,請(qǐng)輸入mongo shell,如下圖所示:
對(duì)于副本配置,mongo shell提供了預(yù)定義的對(duì)象rs,其中包含以下用于配置的功能:
- initiate() =>在當(dāng)前服務(wù)器中創(chuàng)建副本集配置
- status() =>給出服務(wù)器所屬的副本集的當(dāng)前狀態(tài)
- add(serverInfo) =>在副本集中添加新服務(wù)器(作為參數(shù)提供)。
- addArb(serverInfo) =>用于在副本集中添加仲裁器的專(zhuān)用功能
首先,我們需要在其中一臺(tái)服務(wù)器中創(chuàng)建副本集配置。 在mongo shell中執(zhí)行以下命令:
> rs.initiate()之后,您會(huì)在提示符下看到以下內(nèi)容:
這將在本地為此服務(wù)器創(chuàng)建必要的副本集信息,并且您會(huì)注意到提示從初始的'>'更改為'damon:STARTUP2>' ,這表明<replicaSetName:服務(wù)器的狀態(tài)>
您可以在shell提示符下輸入rs.status()來(lái)檢查副本集中有多少臺(tái)服務(wù)器:
如您所見(jiàn),我們?cè)诟北炯袃H添加了一個(gè)服務(wù)器,它是當(dāng)前服務(wù)器,其狀態(tài)為“主要”。
檢查副本中成員的其他方法是使用瀏覽器地址欄中的以下URL http:// : / _replSet。 在我們的例子中,http:// localhost:28017 / _replSet
請(qǐng)注意,這需要在配置文件中啟用rest = true(我們已經(jīng)做到了!)。 這是檢查副本集中服務(wù)器狀態(tài)的首選方法。
現(xiàn)在,我們?cè)诟北痉?wù)器中添加了一個(gè)服務(wù)器,讓我們添加其余服務(wù)器。
對(duì)于add()和addArb()方法,我們將提供包含<machine / host-name>的字符串參數(shù):<port-no-of-server>
(請(qǐng)注意,如果要使用計(jì)算機(jī)名,請(qǐng)?jiān)赿os或bash shell中使用hostname命令)
rs.add(“<machine/host-name>:26017”)rs.addArb(“<machine/host-name>:25017”)
讓我們檢查是否使用rs.status()命令添加了節(jié)點(diǎn)/成員:
或使用基于瀏覽器的:
在這里,我們配置了3節(jié)點(diǎn)副本集MongoDB數(shù)據(jù)庫(kù)集群。 盡管此信息可以應(yīng)用于配置任何編號(hào)。 副本集中節(jié)點(diǎn)的數(shù)量。
翻譯自: https://www.javacodegeeks.com/2013/07/setup-mongodb-replica-set-in-4-steps.html
mongodb副本集
總結(jié)
以上是生活随笔為你收集整理的mongodb副本集_设置MongoDB副本集分为4个步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring框架–应用程序上下文–到达应
- 下一篇: Neo4j:Cypher –属性值只能是