Surveiller et interrompre une construction d'index en cours
MongoDBMaintenanceCommande
// 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.