Почему моя недавно созданная локальная база данных mongodb выросла до 24 ГБ?

Я установил набор реплик mongodb несколько дней назад, я немного поработал над этим, и все работает хорошо. Сегодня я только что нашел, что его местная коллекция выросла до 24G.

rs0:PRIMARY> show dbs
local   24.06640625GB
test    0.203125GB

Другие коллекции выглядят нормально, кроме "oplog.rs":

rs0:PRIMARY> db.oplog.rs.stats()
{
    "ns" : "local.oplog.rs",
    "count" : 322156,
    "size" : 119881336,
    "avgObjSize" : 372.12200300475547,
    "storageSize" : 24681987920,
    "numExtents" : 12,
    "nindexes" : 0,
    "lastExtentSize" : 1071292416,
    "paddingFactor" : 1,
    "systemFlags" : 0,
    "userFlags" : 0,
    "totalIndexSize" : 0,
    "indexSizes" : {

    },
    "capped" : true,
    "max" : NumberLong("9223372036854775807"),
    "ok" : 1
}

Это мой mongodb.conf

dbpath=/data/db

#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
port = 27017
fork = true
replSet = rs0

Как я могу это решить? Большое спасибо.

Ответ 1

Функция oplog, которая хранит текущий журнал для операций на первичной основе и используется для механизма репликации, по умолчанию распределяется на 5% свободного места на диске (для систем Linux/Unix, а не для Mac OS X или Windows). Поэтому, если у вас много свободного места на диске, MongoDB сделает большой oplog, что означает, что у вас есть большое временное окно, в котором вы могли бы вернуться к любой точке времени, например. Как только oplog достигнет своего максимального размера, он просто перевернется (кольцевой буфер).

Вы можете указать размер oplog при инициализации базы данных с помощью параметра oplogSize, см. http://docs.mongodb.org/manual/core/replica-set-oplog/

Нижняя строка: если на самом деле вам не хватает дискового пространства (что, по-видимому, нет, иначе oplog не был бы создан настолько большим), не беспокойтесь об этом. Это обеспечивает дополнительную безопасность.