DBAtlas · Atlas de operaciones de bases de datos

Monitorear y abortar una creación de índice en curso

MongoDBMantenimiento

Comando

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

Qué hace

Lista las creaciones de índices en ejecución con el número de documentos recorridos y el porcentaje de progreso (progress.done / progress.total); si hace falta, aborta la creación con dropIndex.

Cuándo usarlo

Para estimar cuándo terminará un createIndex iniciado en una colección grande, o para detener una creación que genera carga en horas pico.

Precaución

Aborte la creación de un índice con dropIndex/dropIndexes, no con killOp; en un replica set ejecútelo en el primario para que el aborto se propague a todos los miembros. Algunas operaciones DDL sobre la colección esperan durante la creación. Al final de la creación se toma un breve lock exclusivo; con escrituras muy intensas ese momento puede causar latencia.

Abrir en DBAtlas →

Relacionado