簡體   English   中英

MongoDB conf在沒有仲裁者的情況下主持選舉主要成員

[英]MongoDB conf in absence of Arbiter to host election to choosing a primary

讓我在第一步中說明情況。

情況1:我在localhost:27017上設置了一個主副本,並在端口27018和27019上進行了2個主副本的復制。所有這些都在同一集合上。

本地主機:27017作為主

當我關閉端口27017上的服務器時,端口27018和27019上的兩個輔助服務器之一將成為主服務器(從選舉中)。

情況2:我在localhost:27017上設置了一個主副本,在27018和27019上設置了2個主副本,並在27020上設置了一個仲裁器。所有這些都在同一組中。

帶仲裁人

現在,當我關閉arbiter(:27020)和primary(:27017)節點時,我在登錄:27018&:27019時看到以下消息:2016-04-03T12:26:19.035-0700我REPL [ReplicationExecutor]由於我們不可選舉,所以不開始選舉

我如何配置我的輔助節點由它們自己主持選舉(如情況1)並選擇其中一個作為主節點。

用於創建這些節點的建議是:** mongod --port 27017 --dbpath F:\\ mongodb \\ replication \\ rs0-0 --replSet rs0 --smallfiles --oplogSize 128 --logpath F:\\ data \\ log \\ devr0 .log --logappend

mongod --port 27018 --dbpath F:\\ mongodb \\ replication \\ rs0-1 --replSet rs0 --smallfiles --oplogSize 128 --logpath F:\\ data \\ log \\ devr1.log --logappend

mongod --port 27019 --dbpath F:\\ mongodb \\ replication \\ rs0-2 --replSet rs0 --smallfiles --oplogSize 128 --logpath F:\\ data \\ log \\ devr2.log --logappend

mongod --port 27020 --dbpath F:\\ mongodb \\ replication \\ arbiter --replSet rs0 --smallfiles --oplogSize 128 --logpath F:\\ data \\ log \\ devarb.log --logappend **

您的案例2有缺陷。 如圖所示,您將仲裁器添加到了由三個成員組成的工作副本集中。 由於添加成員時沒有選舉發生,因此一切正常。 但是,在關閉后,副本集發現成員的數量是偶數,因此即使在理論上可以找到法定人數的情況下,也拒絕啟動選舉過程。

可以肯定地說,這是一種防止早期過時選舉的安全措施。

您始終需要由數量不等的成員組成的副本集,以便在最壞的情況下,合格的大多數原始成員都可以選舉主要成員。 因此,將仲裁器添加到由三個數據承載節點組成的副本集將不具有任何值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM