Redimensionar o oplog online (replSetResizeOplog)
MongoDBReplica SetComando
// 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()O que faz
Aumenta ou reduz o oplog de um membro em execução sem restart; minRetentionHours mantém as entradas do oplog por um período mínimo mesmo que o limite de tamanho seja excedido.
Quando usar
Quando a janela do oplog não cobre a duração da manutenção ou do initial sync, ou quando jobs de escrita em massa encolhem a janela.
Atenção
O comando afeta apenas o membro em que roda e não é replicado; aplique-o em todos os membros. A janela também precisa ser suficiente nos membros que atuam como sync sources. Reduzir não devolve o espaço em disco ao SO imediatamente; para isso é preciso um compact em oplog.rs. Com minRetentionHours, o oplog pode crescer além de size dependendo do volume de escritas; planeje o disco de acordo.