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

Surveiller et interrompre une construction d'index en cours

MongoDBMaintenance

Commande

// Index builds in progress and their completion percentage:
db.getSiblingDB("admin").aggregate([
  { $currentOp: { allUsers: true } },
  { $match: { $or: [{ "command.createIndexes": { $exists: true } }, { desc: /^IndexBuildsCoordinator/ }] } },
  { $project: { opid: 1, desc: 1, ns: 1, secs_running: 1, msg: 1, progress: 1, "command.indexes.name": 1 } }
])
// Abort the build (on the primary; in a replica set it stops on all members):
db.musteri.dropIndex("idx_email")

Ce que fait la commande

Liste les constructions d'index en cours avec le nombre de documents parcourus et le pourcentage de progression (progress.done / progress.total) ; si nécessaire, interrompt la construction avec dropIndex.

Quand l'utiliser

Pour estimer quand un createIndex lancé sur une grande collection se terminera, ou pour arrêter une construction qui génère de la charge en pointe.

Attention

Interrompez une construction d'index avec dropIndex/dropIndexes, pas avec killOp ; dans un replica set, exécutez-le sur le primaire pour que l'interruption se propage à tous les membres. Certaines opérations DDL sur la collection attendent pendant la construction. Un court verrou exclusif est pris à la fin de la construction ; sous des écritures très intenses, ce moment peut provoquer de la latence.

Ouvrir dans DBAtlas →

Voir aussi