人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

MongoDB balancer的使用詳解

發(fā)布日期:2022-01-28 20:11 | 文章來(lái)源:gibhub

在MongoDB中,balancer(平衡器)是一個(gè)后臺(tái)進(jìn)程,它監(jiān)控每個(gè)shard上的chunk數(shù)量,一旦chunk的數(shù)量差異超過(guò)了閾值,balancer會(huì)自動(dòng)遷移數(shù)據(jù)塊,從而保證每個(gè)分片上chunk數(shù)量的相對(duì)平衡。

整個(gè)搬遷的過(guò)程對(duì)于用戶來(lái)說(shuō)是透明的,但是搬遷的過(guò)程中會(huì)對(duì)用戶產(chǎn)生一些影響。

01 balancer簡(jiǎn)介

從MongoDB3.4開始,balancer運(yùn)行在config server的主節(jié)點(diǎn)上。

在3.4版本中,balancer進(jìn)程活躍期間,config server的主節(jié)點(diǎn)通過(guò)修改locks集合中的一個(gè)_id為balancer的文檔,來(lái)持有"balancer lock";

3.6版本中,balancer不再持有鎖

默認(rèn)的情況下,balancer始終處于開啟狀態(tài),可以使用下面的命令來(lái)查看balancer的運(yùn)行情況:

mongos>sh.getBalancerState()
true

同樣的,我們可以使用下面幾個(gè)命令來(lái)簡(jiǎn)單的管理balancer:

查看banlancer是否正在工作
sh.isBalancerRunning()
停止balancer
sh.stopBalancer()
啟動(dòng)balancer
sh.setBalancerState(true)

02 balancer工作中可能對(duì)業(yè)務(wù)造成的影響?

1、磁盤占用:
從MongoDB2.6開始,MongoDB會(huì)自動(dòng)歸檔遷移的chunk文檔,以方便在chunk搬遷過(guò)程中出現(xiàn)問題后的文檔恢復(fù)。

我們可以通過(guò)配置文件中的參數(shù):sharding.archiveMovedChunks

來(lái)控制是否開啟遷移過(guò)程中chunk的自動(dòng)歸檔,該參數(shù)在MongoDB2.6和3.0版本是默認(rèn)開啟的,其他版本都是默認(rèn)關(guān)閉的。

2、帶寬和負(fù)載占用:

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

a、一次遷移只能遷一個(gè)chunk,

b、一個(gè)shard同一時(shí)間只能執(zhí)行一個(gè)遷移任務(wù)

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

d、只有當(dāng)chunk數(shù)量最多的shard和chunk數(shù)量最少的shard的差異達(dá)到閾值的時(shí)候,才開始遷移chunk

e、支持用戶設(shè)置balancer的窗口時(shí)間,在業(yè)務(wù)低峰窗口時(shí)間內(nèi)進(jìn)行chunk的遷移工作,從而最大程度減輕對(duì)業(yè)務(wù)的影響。

03 設(shè)置balancer的執(zhí)行時(shí)間窗口

1、通過(guò)mongo shell連接到mongos上

2、切換到config數(shù)據(jù)庫(kù)

use config

3、確保當(dāng)前balancer是開啟的

sh.getBalancerState() 返回true

4、設(shè)置窗口時(shí)間

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

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

  • ForHHvalues, use hour values ranging from00-23.
  • ForMMvalue, use minute values ranging from00-59.

MongoDb會(huì)以config數(shù)據(jù)庫(kù)的primary節(jié)點(diǎn)的時(shí)間為參考,開始執(zhí)行相關(guān)chunk的搬遷操作。

要確保設(shè)置的時(shí)間范圍內(nèi),所有的chunk能夠搬遷完畢,否則會(huì)出現(xiàn)數(shù)據(jù)庫(kù)搬遷過(guò)后,依舊不均衡的現(xiàn)象。

移除chunk搬遷時(shí)間窗口的命令如下:

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

04 備份和balancer

MongoDB中,不要在備份的時(shí)候啟用balancer,否則,備份的數(shù)據(jù)將會(huì)不一致。通常情況下,備份的時(shí)間窗口要和balancer的時(shí)間窗口錯(cuò)開,如果balancer沒有設(shè)置時(shí)間窗口,則在備份的時(shí)候,關(guān)閉balancer

時(shí)間關(guān)系,就先到這里吧,其他內(nèi)容后面再說(shuō)

以上就是MongoDB balancer的使用詳解的詳細(xì)內(nèi)容,更多關(guān)于MongoDB balancer的使用的資料請(qǐng)關(guān)注本站其它相關(guān)文章!

國(guó)外服務(wù)器租用

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部