Я загружал фотографии с отчетами в mongodb. Достигнут предел размера базы данных. Как увеличить размер базы данных?
db.stats()
{
"db" : "fieldops",
"collections" : 6,
"objects" : 20454,
"avgObjSize" : 890464.9997066589,
"dataSize" : 18213571104,
"storageSize" : 18432802736,
"numExtents" : 52,
"indexes" : 4,
"indexSize" : 809424,
"fileSize" : 21398290432,
"nsSizeMB" : 16,
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"dataFileVersion" : {
"major" : 4,
"minor" : 22
},
"ok" : 1
}
Также, в качестве отступления. У меня сейчас 12 000 фотографий, которые загружаются каждый месяц. Я читал, что data file
ограничение mongodb составляет 16 000. Я не смог найти определение data file
в глоссарии. Это относится к buffered
фотографиям, которые я загружал в базу данных? Так что, как только это произойдет, мне придется настроить отдельный сервер с шардом? Или я могу создать шард на той же машине?
Заранее спасибо.
решение1
Я загружал фотографии с отчетами в mongodb. Достигнут предел размера базы данных. Как увеличить размер базы данных?
Если у вас есть доступное дисковое пространство, MongoDB автоматически выделит дополнительное дисковое пространство по мере необходимости. Поскольку вы используете механизм хранения MMAP (на основе вашего db.stats()
вывода), MongoDB будет предварительно выделять пространство с увеличивающимися приращениями до 2 ГБ на новый файл (или максимум 512 МБ на файл, если вы используетеsmallFiles
вариант). Учитывая, что размер вашей базы данных в данный момент >18 ГБ, вам понадобится не менее 2 ГБ свободного места (плюс немного места для ОС, если ваш временный каталог находится на том же томе).
Ограничений по количеству документов в коллекции нет, если только вы не используете ограниченную коллекцию с указаннымmax
предел(которое должно быть меньше 2^32). Существуют производственные развертывания MongoDB с триллионами документов (ссылка:MongoDB в масштабе).
MongoDB 3.0+ имеет API движка хранения, поэтому могут быть некоторые ограничения, которые различаются в зависимости от движка хранения. Например,ограничение на размер данныхдля одного mongod
с классическим движком хранения MMAPv1 обычно составляет 64 терабайта данных с включенным журналированием. Движок хранения WiredTiger (опционально в 3.0, по умолчанию в 3.2+) не имеет этого ограничения.
Загрузка десятков тысяч документов в месяц не должна стать проблемой.
Более подробную информацию см. здесь:Ограничения и пороговые значения MongoDB.