DBAtlas · Atlas d'exploitation des bases de données

État du balancer, fenêtre active et équilibrage par collection

MongoDBSharding

Commande

// 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" })

Ce que fait la commande

Indique si le balancer est activé et exécute un cycle, limite les migrations de chunks à une fenêtre horaire et désactive ou active l'équilibrage pour une seule collection.

Quand l'utiliser

Quand les migrations de chunks nuisent aux performances en journée, pendant la fenêtre de sauvegarde ou pour isoler un problème de migration sur une collection.

Attention

Une fenêtre trop étroite ne suit pas la croissance des données et les shards se déséquilibrent ; vérifiez régulièrement l'équilibre avec balancerCollectionStatus. Une migration commencée avant la fermeture de la fenêtre se poursuit jusqu'à la fin. Si l'équilibrage par collection reste désactivé, cette collection continue de grossir sur un seul shard.

Ouvrir dans DBAtlas →

Voir aussi