[英]MongoDB conf in absence of Arbiter to host election to choosing a primary
讓我在第一步中說明情況。
情況1:我在localhost:27017上設置了一個主副本,並在端口27018和27019上進行了2個主副本的復制。所有這些都在同一集合上。
當我關閉端口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.