Почему моя недавно созданная локальная база данных 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 не был бы создан настолько большим), не беспокойтесь об этом. Это обеспечивает дополнительную безопасность.