DBAtlas · Atlas für Datenbankbetrieb

Balancer-Zustand, aktives Zeitfenster und Balancing pro Collection

MongoDBSharding

Befehl

// 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.

In DBAtlas öffnen →

Verwandte Einträge