Estado do balancer, janela ativa e balanceamento por collection
MongoDBShardingComando
// Is the balancer enabled, is it running a round right now:
sh.getBalancerState()
db.adminCommand({ balancerStatus: 1 })
// Run the balancer only between 01:00 and 05:00 (on mongos):
db.getSiblingDB("config").settings.updateOne({ _id: "balancer" }, { $set: { activeWindow: { start: "01:00", stop: "05:00" } } }, { upsert: true })
// Remove the window:
db.getSiblingDB("config").settings.updateOne({ _id: "balancer" }, { $unset: { activeWindow: true } })
// Disable / enable balancing for a single collection:
sh.disableBalancing("shop.musteri")
sh.enableBalancing("shop.musteri")
// Whether the collection is balanced (4.4+):
db.adminCommand({ balancerCollectionStatus: "shop.musteri" })O que faz
Mostra se o balancer está habilitado e executando uma rodada, restringe as migrações de chunks a uma janela de tempo e desabilita ou habilita o balanceamento para uma única collection.
Quando usar
Quando as migrações de chunks prejudicam o desempenho durante o dia, durante a janela de backup ou ao isolar um problema de migração em uma collection.
Atenção
Uma janela estreita demais não acompanha o crescimento dos dados e os shards ficam desbalanceados; verifique o equilíbrio regularmente com balancerCollectionStatus. Uma migração iniciada antes do fim da janela roda até terminar. Se o balanceamento por collection ficar desabilitado, essa collection continua crescendo em um único shard.