DBAtlas · Atlas de operaciones de bases de datos

Redimensionar el oplog en línea (replSetResizeOplog)

MongoDBReplica Set

Comando

// Current oplog size (MB):
db.getSiblingDB("local").oplog.rs.stats().maxSize / 1024 / 1024
// Resize the oplog to 50 GB (in MB; run on each member separately, secondaries first):
db.adminCommand({ replSetResizeOplog: 1, size: 51200 })
// Minimum retention period (hours), independent of size:
db.adminCommand({ replSetResizeOplog: 1, minRetentionHours: 48 })
// Verify the result:
rs.printReplicationInfo()

Qué hace

Hace crecer o reduce el oplog de un miembro en ejecución sin reinicio; minRetentionHours conserva las entradas del oplog durante un periodo mínimo aunque se supere el límite de tamaño.

Cuándo usarlo

Cuando la ventana del oplog no cubre la duración del mantenimiento o de la sincronización inicial, o los jobs de escritura masiva reducen la ventana.

Precaución

El comando solo afecta al miembro en el que se ejecuta y no se replica; aplíquelo en cada miembro. La ventana también debe ser suficiente en los miembros que actúan como sync sources. Reducirlo no devuelve el espacio en disco al SO de inmediato; para eso hace falta compact sobre oplog.rs. Con minRetentionHours el oplog puede crecer por encima de size según el volumen de escritura; planifique el disco en consecuencia.

Abrir en DBAtlas →

Relacionado