婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MongoDB balancer的使用詳解

MongoDB balancer的使用詳解

熱門標簽:青白江400企業電話申請 小裙科技電銷機器人怎樣 長沙電銷外呼防封卡是什么 河南電話外呼系統招商 crm外呼系統聯系方式 內蒙古營銷智能外呼系統哪個好 外呼線路資源屬于電信業務嗎 智能外呼系統官網 呼和浩特外呼系統原理是什么

   在MongoDB中,balancer(平衡器)是一個后臺進程,它監控每個shard上的chunk數量,一旦chunk的數量差異超過了閾值,balancer會自動遷移數據塊,從而保證每個分片上chunk數量的相對平衡。

   整個搬遷的過程對于用戶來說是透明的,但是搬遷的過程中會對用戶產生一些影響。

01 balancer簡介

   從MongoDB3.4開始,balancer運行在config server的主節點上。

    在3.4版本中,balancer進程活躍期間,config server的主節點通過修改locks集合中的一個_id為balancer的文檔,來持有"balancer lock";

    3.6版本中,balancer不再持有鎖

    默認的情況下,balancer始終處于開啟狀態,可以使用下面的命令來查看balancer的運行情況:

mongos> sh.getBalancerState()
true

    同樣的,我們可以使用下面幾個命令來簡單的管理balancer:

查看banlancer是否正在工作
sh.isBalancerRunning() 

停止balancer
sh.stopBalancer()

啟動balancer
sh.setBalancerState( true )

02 balancer工作中可能對業務造成的影響?

1、磁盤占用:
   從MongoDB2.6開始,MongoDB會自動歸檔遷移的chunk文檔,以方便在chunk搬遷過程中出現問題后的文檔恢復。

   我們可以通過配置文件中的參數:sharding.archiveMovedChunks

來控制是否開啟遷移過程中chunk的自動歸檔,該參數在MongoDB2.6和3.0版本是默認開啟的,其他版本都是默認關閉的。

2、帶寬和負載占用:

    balancer再對chunk遷移過程中,會造成帶寬和負載方面的開銷。為了減輕這些影響,平衡器做了如下的工作:

a、一次遷移只能遷一個chunk,

b、一個shard同一時間只能執行一個遷移任務

c、從MongoDB3.4開始,引入了并行的chunk遷移,對于一個有n個shard的集群,每次最多并行遷移n/2(向下取整)個數據塊

d、只有當chunk數量最多的shard和chunk數量最少的shard的差異達到閾值的時候,才開始遷移chunk

e、支持用戶設置balancer的窗口時間,在業務低峰窗口時間內進行chunk的遷移工作,從而最大程度減輕對業務的影響。

03 設置balancer的執行時間窗口

 1、通過mongo shell連接到mongos上

2、切換到config數據庫

    use config

3、確保當前balancer是開啟的

    sh.getBalancerState()  返回true

4、設置窗口時間

db.settings.update(
   { _id: "balancer" },
   { $set: { activeWindow : { start : "start-time>", stop : "stop-time>" } } },
   { upsert: true }
)

其中,start-time和stop-time的取值如下:

  • For HH values, use hour values ranging from 00 - 23.
  • For MM value, use minute values ranging from 00 - 59.

MongoDb會以config數據庫的primary節點的時間為參考,開始執行相關chunk的搬遷操作。

要確保設置的時間范圍內,所有的chunk能夠搬遷完畢,否則會出現數據庫搬遷過后,依舊不均衡的現象。

移除chunk搬遷時間窗口的命令如下:

use config
db.settings.update({ _id : "balancer" }, { $unset : { activeWindow : true } })

04 備份和balancer

   MongoDB中,不要在備份的時候啟用balancer,否則,備份的數據將會不一致。通常情況下,備份的時間窗口要和balancer的時間窗口錯開,如果balancer沒有設置時間窗口,則在備份的時候,關閉balancer

   時間關系,就先到這里吧,其他內容后面再說

以上就是MongoDB balancer的使用詳解的詳細內容,更多關于MongoDB balancer的使用的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MongoDB詭異問題之sh.stopBalancer卡住的解決方法

標簽:舟山 楚雄 呼倫貝爾 白山 安順 黃石 菏澤 池州

巨人網絡通訊聲明:本文標題《MongoDB balancer的使用詳解》,本文關鍵詞  MongoDB,balancer,的,使用,詳解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB balancer的使用詳解》相關的同類信息!
  • 本頁收集關于MongoDB balancer的使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 蚌埠市| 紫金县| 榕江县| 普兰店市| 泰安市| 安西县| 滨州市| 读书| 大悟县| 黄山市| 犍为县| 千阳县| 同心县| 景谷| 新乐市| 韶山市| 营山县| 江永县| 广南县| 望江县| 微山县| 上虞市| 色达县| 垫江县| 张家川| 莆田市| 临武县| 宁晋县| 五指山市| 泽库县| 濮阳市| 进贤县| 娄底市| 绥宁县| 绵阳市| 调兵山市| 闵行区| 舞钢市| 仙居县| 太仓市| 哈巴河县|