Redimensionner l'oplog en ligne (replSetResizeOplog)
MongoDBReplica SetCommande
// 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()Ce que fait la commande
Agrandit ou réduit l'oplog d'un membre en cours d'exécution sans redémarrage ; minRetentionHours conserve les entrées de l'oplog pendant une durée minimale même si la limite de taille est dépassée.
Quand l'utiliser
Quand la fenêtre de l'oplog ne couvre pas la durée de la maintenance ou de la synchronisation initiale, ou que des jobs d'écriture massive réduisent la fenêtre.
Attention
La commande n'affecte que le membre sur lequel elle s'exécute et n'est pas répliquée ; appliquez-la sur chaque membre. La fenêtre doit aussi être suffisante sur les membres qui servent de sources de synchronisation. La réduction ne rend pas immédiatement l'espace disque à l'OS ; un compact sur oplog.rs est nécessaire pour cela. Avec minRetentionHours, l'oplog peut dépasser size selon le volume d'écriture ; dimensionnez le disque en conséquence.