Balancer-Zustand, aktives Zeitfenster und Balancing pro Collection
MongoDBShardingBefehl
// 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" })Was es tut
Zeigt, ob der Balancer aktiviert ist und gerade eine Runde ausführt, beschränkt Chunk-Migrationen auf ein Zeitfenster und deaktiviert oder aktiviert das Balancing für eine einzelne Collection.
Wann einsetzen
Wenn Chunk-Migrationen tagsüber die Performance beeinträchtigen, während des Backup-Fensters oder beim Eingrenzen eines Migrationsproblems auf einer Collection.
Vorsicht
Ein zu enges Fenster kommt mit dem Datenwachstum nicht mit, und die Shards werden ungleich; prüfe die Balance regelmäßig mit balancerCollectionStatus. Eine vor Schließen des Fensters gestartete Migration läuft bis zum Ende. Bleibt das Balancing pro Collection deaktiviert, wächst diese Collection weiter auf einem einzigen Shard.