前文傳送門
解鎖mongodb replica set核心姿勢
mongodb副本集自動故障轉移全流程原理
「本文聊一聊 mongodb 副本集運維視窗期的操作策略,最大程度地減少主節點不可用的時間。副本集不僅能幫助資料庫從節點故障/網路分割槽中快速恢復,而且使您能夠執行運維任務而不會影響高可用性。
mongodb 副本集的維護/公升級通常以滾動方式執行,依次在輔助節點上執行維護,而最後執行主節點維護。
在輔助節點上停止mongodb服務,執行運維操作
在伺服器上啟動mongodb服務
等待節點的mongodb同步到最新的oplog(追趕)
在副本集中的其他輔助節點上重複上述操作
假定乙個副本集包含mon01(主節點),mon02(輔助)mon03(輔助),滾動運維通常需要:
先後在輔助節點mon03、mon02上進行維護
將主節點mon01降級(stepdown),等待選舉新主節點,比如說mon02
在以前的主節點mon01上執行維護
如果主伺服器意外終止/大多數輔助節點覺得與主節點失聯,則輔助節點會在丟失心跳10秒鐘後要求進行選舉。
退出(stepdown)主節點可加快故障轉移過程,建議使用stepdown命令退出主節點以強制觸發選舉,而不是關閉(shutdownserver)主資料庫 (輔助節點需花時間識別主節點失聯)
減少electiontimeoutmillis閾值
輔助節點認定主節點失聯的預設閾值是10s, 在滾動維護期間我們可人為縮短這個閾值,加快選舉。但是運維完畢,請恢復這個預設設定。
rs.ismaster().me
// mon02:27000
// rs0:primary>
// on the new primary
var conf = rs.conf()
conf.settings.electiontimeoutmillis=10000
/*rs.reconfig(conf)
}}*/
「一般情況下,會根據如下因素選擇 主節點10s的閾值是合適的,我們要確保集群能夠忽略和忍耐網路抖動或網路延遲, 減少不必要的重選。
若想指定某輔助節點mon02為下乙個主節點,在其他輔助節點上執行rs.freeze(60)凍結它們成為主節點的資格;當你stepdown主節點mon01時,輔助節點mon02是唯一可以選擇的主節點,這將加快選舉速度。
或您可以通過給予副本集成員比其他成員更高的member [n] .priority值來使其成為主節點。
cfg = rs.conf()
cfg.members[0].priority = 0.5
cfg.members[1].priority = 0.5
cfg.members[2].priority = 1
rs.conf() 返回包含當前副本集配置的文件
rs.sttaus() 返回副本集某成員視角收到的副本集狀態
rs.stepdown(stepdownsecs, secondarycatchupperiodsecs) 指示主節點退化為輔助節點,之後合格的輔助節點會發起選舉;另外並不是立即退化,等待指定時間確保有乙個節點與主節點保持最新同步。
rs.freeze(seconds) 在一定時間內凍結節點成為主節點的資格
rs.reconfig(configuration, force) 重新配置現有副本集,覆蓋現有副本集配置(需要連到主節點執行)
mysql副本集 MongoDB副本集
一 節點型別standard 常規節點,它儲存乙份完整的資料副本,參與選舉投票,有可能成為活躍節點。passive 儲存了完整的資料副本 一 節點型別 standard 常規節點,它儲存乙份完整的資料副本,參與選舉投票,有可能成為活躍節點。passive 儲存了完整的資料副本,參與投票,不能成為活躍...
mysql副本集 mongoDB副本集的搭建
環境簡介 192.168.1.151 fedoraserver 用作副本集的主庫,已經有資料 192.168.1.152 fedoraserver 從庫,空例項 192.168.1.153 fedoraserver 從庫,空例項 mongodb的副本集和mysql基於gtid的多源三例項迴圈主從即 ...
mongodb 系統 副本集
mongodb 系統 副本集 rm r data f mkdir data mkdir data mongodb data mkdir data mongodb log chown r richy data mongodb data chown r richy data mongodb log re...