mitaichik
@mitaichik

Как очистить место занимаемое MongoDb?

Господа, есть у меня база Mongo размером примерно 11Gb. Я почистил ненужных данных на 5Gb. Хотелось бы чтоб размер базы, соответсвенно, уменьшился, потому что места на диске осталось всего 3Gb. В мануале пишут что нужно юзать db.repairDatabase().

Ее вызов завершается с ошибкой
Cannot repair database app having size: 10682892288 (bytes) because free disk space is: 3699429376 (bytes)


Вопрос: можно ли очистить место другим способом? Я так понимаю что db.repairDatabase() не работает из-за недостаточного кол-ва места, но больше у меня нет.

Заранее спасибо!
  • Вопрос задан
  • 1760 просмотров
Решения вопроса 1
@lega
Набросал некоторые мысли:

Я в таком случае иногда поднимаю инстанс за "пару минут" в Digital Ocean (40 копеек/час), монтирую его через nfs, делаю mongodump, удаляю базу, mongorestore. Все. - быстро, дешево.
Либо просто сделать dump/restore с другого хоста (если он есть).

Так же можете попробовать сделать дамп данных, дамп может весить меньше и если повезет то 3Гб хватит.

Ещё бывает, что монга держит удаленные временные файлы, которые занимают место, можно попробовать перезагрузить монгу или весь сервер.

Можете использовать флаг smallfiles, тогда монга будет чуть экономней захватывать место.

Можно отключить журналирование - высвободится дополнительно 3Гб, тогда на dump/restore хватит, а может и на repairDatabase.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
делаете дамп бд на другой сервер, удаляете бд, заливаете бд с другого сервера
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы