摘要:登陸叢機(jī)此時(shí),叢機(jī)已經(jīng)在副本集群中了,進(jìn)行最后一個(gè)操作這樣在主機(jī)上的操作就會同步到從機(jī)上了。
本文目的
為了在各個(gè)MongDB之間實(shí)現(xiàn)多節(jié)點(diǎn)之間的數(shù)據(jù)自動備份,提高容災(zāi)性能。MongoDB復(fù)制是將數(shù)據(jù)同步在多個(gè)服務(wù)器的過程。復(fù)制提供了數(shù)據(jù)的冗余備份,并在多個(gè)服務(wù)器上存儲數(shù)據(jù)副本,提高了數(shù)據(jù)的可用性,并可以保證數(shù)據(jù)的安全性。
mongodb的復(fù)制至少需要兩個(gè)節(jié)點(diǎn)。其中一個(gè)是主節(jié)點(diǎn),負(fù)責(zé)處理客戶端請求,其余的都是從節(jié)點(diǎn),負(fù)責(zé)復(fù)制主節(jié)點(diǎn)上的數(shù)據(jù)。mongodb各個(gè)節(jié)點(diǎn)常見的搭配方式為:一主一從、一主多從。主節(jié)點(diǎn)記錄在其上的所有操作oplog,從節(jié)點(diǎn)定期輪詢主節(jié)點(diǎn)獲取這些操作,然后對自己的數(shù)據(jù)副本執(zhí)行這些操作,從而保證從節(jié)點(diǎn)的數(shù)據(jù)與主節(jié)點(diǎn)一致。
N 個(gè)節(jié)點(diǎn)的集群
任何節(jié)點(diǎn)可作為主節(jié)點(diǎn)
所有寫入操作都在主節(jié)點(diǎn)上
自動故障轉(zhuǎn)移
自動恢復(fù)
操作步驟本文中使用同一個(gè)MongoDB實(shí)現(xiàn)兩個(gè)節(jié)點(diǎn)的直接的備份,當(dāng)然是有主、從的,但是這個(gè)主、從和一般的主從不一樣,這里的主機(jī)爆掉之后,就會自動連接到叢機(jī)上繼續(xù)使用數(shù)據(jù)。這就是集群的優(yōu)勢所在。
準(zhǔn)備兩個(gè)數(shù)據(jù)庫
復(fù)制兩個(gè)data目錄:data與data1目錄,也就是兩個(gè)數(shù)據(jù)庫目錄。分別修改這兩個(gè)data目錄下的配置文件,分別為:
data中,/data/etc/mongodb.conf:
dbpath=datadb #數(shù)據(jù)庫路徑 logpath=datalogsmongodb.log #日志輸出文件路徑 logappend=true #錯(cuò)誤日志采用追加模式,配置這個(gè)選項(xiàng)后mongodb的日志會追加到現(xiàn)有的日志文件,而不是從新創(chuàng)建一個(gè)新文件 journal=true #啟用日志文件,默認(rèn)啟用 quiet=true #這個(gè)選項(xiàng)可以過濾掉一些無用的日志信息,若需要調(diào)試使用請?jiān)O(shè)置為false port=27017 #端口號 默認(rèn)為27017
data1中,/data1/etc/mongodb.conf:
dbpath=data1db #數(shù)據(jù)庫路徑 logpath=data1logsmongodb.log #日志輸出文件路徑 logappend=true #錯(cuò)誤日志采用追加模式,配置這個(gè)選項(xiàng)后mongodb的日志會追加到現(xiàn)有的日志文件,而不是從新創(chuàng)建一個(gè)新文件 journal=true #啟用日志文件,默認(rèn)啟用 quiet=true #這個(gè)選項(xiàng)可以過濾掉一些無用的日志信息,若需要調(diào)試使用請?jiān)O(shè)置為false port=27018 #端口號 默認(rèn)為27018
啟動兩個(gè)mongoDB數(shù)據(jù)庫
cmd中:
由于本文是在同一臺機(jī)器上配置兩個(gè)節(jié)點(diǎn),所以兩個(gè)節(jié)點(diǎn)的ip是相同的:
啟動第一個(gè)數(shù)據(jù)庫:
mongod --port 27017 --dbpath "data" --replSet rs
啟動第二個(gè)數(shù)據(jù)庫:
mongod --port 27018 --dbpath "data1" --replSet rs
添加將數(shù)據(jù)庫添加到副本集中
登陸第一個(gè)數(shù)據(jù)庫:
mongo 127.0.0.1:27017
以該數(shù)據(jù)庫為主機(jī),初始化副本集,初始化過程化過程中就會將該數(shù)據(jù)庫作為主機(jī)加入到這個(gè)副本集中了。
初始化副本集:
>rs.initiat()
查看當(dāng)前副本集的機(jī)器情況:
>rs.conf()
當(dāng)前應(yīng)該只有27017這個(gè)主機(jī)在這個(gè)副本集中。
然后再將叢機(jī)都加進(jìn)來:
>rs.add("trilever-pc:27018")
再看當(dāng)前副本集集群的情況,就會發(fā)現(xiàn)叢機(jī)已經(jīng)加進(jìn)來了。
登陸叢機(jī):
mongo 127.0.0.1:27017
此時(shí),叢機(jī)已經(jīng)在副本集群中了,進(jìn)行最后一個(gè)操作:
>rs.slaveok()
這樣在主機(jī)上的操作就會同步到從機(jī)上了。
整個(gè)配置完畢。驗(yàn)證即可。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/18907.html
摘要:另外,支持對復(fù)制集的節(jié)點(diǎn)進(jìn)行靈活的配置,以適應(yīng)多種場景的需求。節(jié)點(diǎn)只參與投票,不能被選為,并且不從同步數(shù)據(jù)。節(jié)點(diǎn)不能被選為主為,并且對不可見。根據(jù)各集合的設(shè)置,在上為相應(yīng)集合創(chuàng)建。 復(fù)制集簡介 Mongodb復(fù)制集由一組Mongod實(shí)例(進(jìn)程)組成,包含一個(gè)Primary節(jié)點(diǎn)和多個(gè)Secondary節(jié)點(diǎn),Mongodb Driver(客戶端)的所有數(shù)據(jù)都寫入Primary,Second...
摘要:注意事項(xiàng)用容器和編排工具運(yùn)行介紹了一些額外注意事項(xiàng)數(shù)據(jù)庫是有狀態(tài)的。尤其,在副本集合中,一個(gè)節(jié)點(diǎn)必須被用來執(zhí)行和命令。名字叫做的被配置用來確保的單個(gè)實(shí)例是一直在運(yùn)行的。 想要在你的手提電腦上嘗試MongoDB嗎?執(zhí)行一個(gè)命令,然后擁有一個(gè)輕量級,獨(dú)立的沙箱;再執(zhí)行一個(gè)命令,刪除你完成之后所有的痕跡。是不是需要一個(gè)在多個(gè)環(huán)境中都跟你的應(yīng)用程序堆棧一樣的應(yīng)用程序?創(chuàng)建一你自己的容器鏡像,然...
摘要:注意事項(xiàng)用容器和編排工具運(yùn)行介紹了一些額外注意事項(xiàng)數(shù)據(jù)庫是有狀態(tài)的。尤其,在副本集合中,一個(gè)節(jié)點(diǎn)必須被用來執(zhí)行和命令。名字叫做的被配置用來確保的單個(gè)實(shí)例是一直在運(yùn)行的。 想要在你的手提電腦上嘗試MongoDB嗎?執(zhí)行一個(gè)命令,然后擁有一個(gè)輕量級,獨(dú)立的沙箱;再執(zhí)行一個(gè)命令,刪除你完成之后所有的痕跡。是不是需要一個(gè)在多個(gè)環(huán)境中都跟你的應(yīng)用程序堆棧一樣的應(yīng)用程序?創(chuàng)建一你自己的容器鏡像,然...
閱讀 3621·2021-11-22 15:11
閱讀 4776·2021-11-18 13:15
閱讀 2771·2019-08-29 14:08
閱讀 3646·2019-08-26 13:49
閱讀 3148·2019-08-26 12:17
閱讀 3349·2019-08-26 11:54
閱讀 3183·2019-08-26 10:58
閱讀 2100·2019-08-26 10:21