您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關MongoDB副本集運維策略是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
MongoDB 副本集的維護/升級通常以滾動方式執行,依次在輔助節點上執行維護,而最后執行主節點維護。
假定一個副本集包含mon01(主節點),mon02(輔助)mon03(輔助),滾動運維通常需要:
如果主服務器意外終止/大多數輔助節點覺得與主節點失聯,則輔助節點會在丟失心跳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)
{
"ok": 1,
"operationTime": Timestamp(1529034252, 1),
"$clusterTime": {
"clusterTime": Timestamp(1529034252, 1),
"signature": {
"hash": BinData(0, "AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId": NumberLong(0)
}
}
}
*/
“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) 重新配置現有副本集,覆蓋現有副本集配置(需要連到主節點執行)
關于MongoDB副本集運維策略是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。