Mongodb

MongoDB 副本集:為什麼最後剩下的伺服器成為輔助伺服器?

  • November 26, 2015

我正在嘗試使用 MongoDB 副本集來測試高可用性場景。我已經設置了一個 3 伺服器副本集。當我停止主伺服器時,其餘 2 台伺服器中的一台成為主伺服器。之後,當我停止新的主伺服器時,最後剩下的伺服器顯示它的狀態為輔助伺服器。

最後一個伺服器不應該自動成為主伺服器嗎?或者我是否需要為此配置一些設置?

每個 MongoDB 副本集最多有一個主節點,該主節點是在法定人數的基礎上選舉產生的。嚴格多數的副本集成員必須投票給主節點(即n/2+1 票,其中n是配置的副本集成員的數量)。

如果您在 3 成員副本集中有一個倖存成員,則該成員不能被選舉(或保持)主要成員,因為只有一個投票可用。

多數票的要求是避免在網路分區等情況下有多個初選。例如,如果所有 3 個副本集成員在技術上都“啟動”但由於網路問題而無法相互通信,則只有具有大多數副本集成員的分區才能維護主節點。

有關更多資訊,請參閱MongoDB 手冊中的副本集選舉

引用自:https://serverfault.com/questions/738821