DBAtlas · Атлас эксплуатации баз данных

Изменение размера oplog онлайн (replSetResizeOplog)

MongoDBReplica Set

Команда

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

Что делает

Увеличивает или уменьшает oplog работающего участника без перезапуска; minRetentionHours сохраняет записи oplog в течение минимального периода, даже если лимит размера превышен.

Когда использовать

Когда окно oplog не покрывает длительность обслуживания или начальной синхронизации либо массовые задания записи сжимают окно.

Внимание

Команда влияет только на участника, где выполняется, и не реплицируется; применяйте её на каждом участнике. Окна должно хватать и на участниках, служащих источниками синхронизации. Уменьшение не сразу возвращает место на диске ОС; для этого нужен compact на oplog.rs. С minRetentionHours oplog может вырасти сверх size в зависимости от объёма записи; планируйте диск соответственно.

Открыть в DBAtlas →

Связанные материалы