Невозможно восстановить базу данных, имеющую размер

У меня есть коллекция MongoDB, которая заполнила весь жесткий диск на моей машине, и я хочу просто удалить ее и освободить место на жестком диске.

Я удалил коллекцию, используя db.getCollection("collection").drop(), но когда я пытаюсь запустить db.repairDatabase(), чтобы освободить место на диске, происходит сбой с ошибкой:

Невозможно восстановить тест базы данных размером: ..., так как свободного места на диске: ...

Есть ли способ вернуть место на жестком диске без стирания и повторного создания моего сервера Mongo?


person mclaassen    schedule 02.09.2014    source источник
comment
Предполагая, что вы делаете это на своей локальной машине. Вы пытались войти в каталог данных, где mongodb хранит все ваши данные, и удалить саму папку.   -  person Lalit Agarwal    schedule 02.09.2014
comment
@LalitAgarwal Это безопасно? .. просто удалить папку с данными?   -  person mclaassen    schedule 02.09.2014


Ответы (1)


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

use <database name>
db.dropDatabase()
person vmr    schedule 02.09.2014
comment
Меня не волнуют данные, я просто тестирую MongoDB прямо сейчас и могу просто выбросить коллекцию. - person mclaassen; 02.09.2014
comment
Ах, в этом случае просто запустите это: mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})' - person vmr; 02.09.2014
comment
Именно то, что мне было нужно. Спасибо. - person mclaassen; 02.09.2014
comment
Что ж, в моем случае это работает, но кажется, что на самом деле решения все еще нет, если это всего лишь одна коллекция, которую вы хотите удалить и освободить место, если диск заполнен. - person mclaassen; 02.09.2014
comment
Разные проблемы решаются по-разному... :) - person vmr; 02.09.2014
comment
Надеюсь, вы не возражаете, что я изменил ваш ответ на то, что я считал действительно полезным. - person mclaassen; 02.09.2014