Replication

次要成員是否有自動方式提升為副本集中的主要成員?

  • May 24, 2021

這是我的設置:

Node 1 = 10.1.0.1 (Primary) - priority 1
Node 2 = 10.1.0.2 (Secondary) - priority 1
Node 3 = 10.1.0.3 (Secondary) - priority 0

如果節點 1 發生故障,節點 2 將設置為 mongo 副本集的主節點。

一旦節點 1 已經可以訪問,是否有辦法自動將其提升為主節點,一旦節點 1 趕上副本集,節點 2 將再次設置為輔助節點?

是的,很容易!將節點 1 的優先級設置為高於 1…

Node 1 = 10.1.0.1 (Primary) - priority 2
Node 2 = 10.1.0.2 (Secondary) - priority 1
Node 3 = 10.1.0.3 (Secondary) - priority 0.5

這裡的主要因素是Replica Set Elections

副本集使用選舉來確定哪個集成員將成為主要成員。副本集可以觸發選舉以響應各種事件,例如:

  • 向副本集添加一個新節點,
  • 啟動副本集,
  • rs.stepDown()使用or等​​方法執行副本集維護 rs.reconfig(),以及
  • 次要成員失去與主要成員的連接超過配置的超時時間(預設為 10 秒)。

我認為這就是你要找的:

rs.stepDown() 指示副本集的主節點成為輔助節點。在主節點下台後,符合條件的輔助節點將舉行新主節點選舉。

另一種選擇是,您可以通過賦予副本集成員members[n].priority比集合中任何其他成員更高的值來強制副本集成員成為主要成員。請注意,副本集的大多數已配置成員必須可用於副本集重新配置或選舉主節點。

引用自:https://dba.stackexchange.com/questions/292148