MongoDB 副本集配置

一.什么是MongoDB副本集幸乒?

副本集是一組mongod維護相同數(shù)據(jù)集的實例,它提供了數(shù)據(jù)的冗余備份唇牧,并在多個服務器上存儲數(shù)據(jù)副本罕扎,提高了數(shù)據(jù)的可用性基茵, 并可以保證數(shù)據(jù)的安全性;還允許您從硬件故障和服務中斷中恢復數(shù)據(jù)壳影;實現(xiàn)自動故障轉移,還可以采用分布式方式讀取數(shù)據(jù)弥臼。

二.MongoDB副本集的原理宴咧?

mongodb的復制至少需要兩個節(jié)點。其中一個是主節(jié)點径缅,負責處理客戶端請求掺栅,其余的都是從節(jié)點,負責復制主節(jié)點上的數(shù)據(jù)纳猪。mongodb各個節(jié)點常見的搭配方式為:一主一從氧卧、一主多從。

主節(jié)點記錄在其上的所有操作oplog氏堤,從節(jié)點定期輪詢主節(jié)點獲取這些操作沙绝,然后對自己的數(shù)據(jù)副本執(zhí)行這些操作,從而保證從節(jié)點的數(shù)據(jù)與主節(jié)點一致鼠锈。
通過在不同數(shù)據(jù)庫服務器上提供多個數(shù)據(jù)副本闪檬,復制可提供一定級別的容錯功能,以防止丟失單個數(shù)據(jù)庫服務器购笆。

三.MongoDB副本集同步粗悯?

  1. 克隆除本地數(shù)據(jù)庫之外的所有數(shù)據(jù)庫。要克隆mongod掃描每個源數(shù)據(jù)庫中的每個集合同欠,并將所有數(shù)據(jù)插入到這些集合的自己的副本中样傍。版本3.4中已更改:初始同步會在為每個集合復制文檔時構建所有集合索引。在早期版本的MongoDB中铺遂,僅_id在此階段構建索引衫哥。初始同步在數(shù)據(jù)復制期間提取新添加的oplog記錄。確保目標成員在local 數(shù)據(jù)庫中有足夠的磁盤空間娃循,以便在此數(shù)據(jù)復制階段的持續(xù)時間內(nèi)臨時存儲這些oplog記錄炕檩。

  2. 將所有更改應用于數(shù)據(jù)集。使用源中的oplog捌斧,mongod更新其數(shù)據(jù)集以反映副本集的當前狀態(tài)笛质。

    初始同步完成后,成員從轉換 STARTUP2SECONDARY捞蚂。

四.部署MongoDB副本集的注意事項

  • 如果可能妇押,請使用邏輯DNS主機名而不是IP地址,尤其是在配置副本集成員或分片集群成員時姓迅。邏輯DNS主機名的使用避免了由于IP地址更改而導致的配置更改敲霍。
  • IP綁定 3.6版本之后才默認綁定地址為localhost俊马,所以最好還是配置--bind-ip參數(shù),如若綁定的非本地計算機肩杈,請確保已保護您的群集免受未經(jīng)授權的訪問柴我,最好考慮啟用身份驗證強化網(wǎng)絡基礎架構
  • 確保網(wǎng)絡流量可以在集合的所有成員和網(wǎng)絡中的所有客戶端之間安全地傳遞
    1.建立虛擬專用網(wǎng)絡。確保您的網(wǎng)絡拓撲通過局域網(wǎng)路由單個站點內(nèi)的成員之間的所有流量扩然。
    2.配置訪問控制以防止從未知客戶端到副本集的連接艘儒。
    3.配置網(wǎng)絡和防火墻規(guī)則,以便僅在默認的MongoDB端口上允許傳入和傳出的數(shù)據(jù)包夫偶,并且僅在部署中允
  • 最好部署具有已啟用訪問控制的副本集
  • 備份數(shù)據(jù)庫在備份時會出現(xiàn)一定的延遲
  • 啟動MongoDB 需以副本集模式啟動
  • 備份數(shù)據(jù)庫必須設置votes 值為1才擁有選舉成為Primary服務器的可能

五.MongoDB副本集的需要哪些資源配置界睁?

一臺安裝好MongoDB 的服務器 192.168.1.1
或者
三臺安裝好MongoDB 的服務器 192.168.1.1 192.168.1.2 192.168.1.3
網(wǎng)絡處于可使用狀態(tài)

六.部署MongoDB副本集

1. 設置配置文件
通過 --replSet --bind_ip 命令行選項指定副本集名稱和ip綁定
語法:mongod --replSet "rs0" -- bind_ip localhost,<hostname ( s )| ip address ( es ) >
或者使用配置文件指定 replica set name 和 ip addresses

systemLog
    path: /var/log/mongodb/mongodb.log

storage
    dbPath: /var/lib/mongo-res1
    journal: 
        enabled: true
replication:
   replSetName : rs0
net :
   bindIp : localhost兵拢,<hostname(s)| ip address(es)>

配置參數(shù)含義:
replSet:設置Replica Set的name翻斟,在各個配置文件中,其值必須相同说铃。
dbpath:MongoDB用于存儲數(shù)據(jù)的目錄访惜,默認值是C:\data\db
bind_ip 指定ip
path:用于記錄mongod的日志數(shù)據(jù)
port:指定MongoDB監(jiān)聽的端口,默認值是27017

然后要使用配置文件啟動MongoDB實例 腻扇,使用 --config 選項指定配置文件的路徑疾牲。

mongod --config <path-to-config>

三個實例啟動完畢后,查看 ps -ef|grep mongo


我這里是一臺服務配置的三個實例

2.使用 mongoDB shell 連接到其中一個 mongod 實例
mongo --host 192.168.1.1 --port 27017

3.啟動副本集
使用 rs.initiate() 來指定副本集的所有成員

rs.initiate({
   _id : "rs0",
   members :[
      {  _id : 0 , host: "192.168.1.1:27017"},
      {  _id : 1 , host: "192.168.1.1:27019"},
      {  _id : 2 , host: "192.168.1.1:27019"} 
   ] 
})
image.png

4.查看副本集配置

rs.conf()

5.查看副本集主副本信息

rs.status()

七.應用MongoDB副本集

嘗試關閉主節(jié)點
db.shutdownServer();
或者使用kill 端口的方式

image.png

然后再查看剩下的兩個副節(jié)點是否有一個成為新的節(jié)點
stateStr : "PRIMARY" 就是主節(jié)點

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末衙解,一起剝皮案震驚了整個濱河市阳柔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚓峦,老刑警劉巖舌剂,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異暑椰,居然都是意外死亡霍转,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門一汽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來避消,“玉大人,你說我怎么就攤上這事召夹⊙遗纾” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵监憎,是天一觀的道長纱意。 經(jīng)常有香客問我缕碎,道長柔昼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任零酪,我火速辦了婚禮房匆,結果婚禮上信峻,老公的妹妹穿的比我還像新娘砌庄。我一直安慰自己封拧,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布硫狞。 她就那樣靜靜地躺著曲梗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪妓忍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天愧旦,我揣著相機與錄音世剖,去河邊找鬼。 笑死笤虫,一個胖子當著我的面吹牛旁瘫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播琼蚯,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼酬凳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了遭庶?” 一聲冷哼從身側響起宁仔,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎峦睡,沒想到半個月后翎苫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡榨了,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年煎谍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片龙屉。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡呐粘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出转捕,到底是詐尸還是另有隱情作岖,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布五芝,位于F島的核電站鳍咱,受9級特大地震影響,放射性物質發(fā)生泄漏与柑。R本人自食惡果不足惜谤辜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一蓄坏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丑念,春花似錦涡戳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至推正,卻和暖如春恍涂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背植榕。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工再沧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尊残。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓炒瘸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親寝衫。 傳聞我的和親對象是個殘疾皇子顷扩,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容