У меня проблемы с MongoDB и использованием пространства. В частности, у меня когда-то была большая коллекция из 600 миллионов записей общим объемом более 110 ГБ на диске. Недавно я решил отбросить его, потому что данные устарели, для этого я сбросил коллекцию через веб-интерфейс rockmongo. Соответственно, rockmongo больше не показывает мне коллекцию, однако использование моего диска вообще не изменилось.
Есть ли какая-нибудь чистая операция, о которой я не знаю, которую необходимо выполнить, чтобы синхронизировать базу данных с файлами базы данных на диске?
Я попытался выполнить «ремонт», но система жалуется, что на диске недостаточно места ... это потому, что все это используется MongoDB.
Как и в большинстве систем баз данных, файлы базы данных не сжимаются при удалении данных, данные просто удаляются / помечаются как удаленные, а пространство используется повторно.
Вам нужно будет бежать db.repairDatabase()
для компактного пространства, как указано Вот
Хотя описанный выше подход mongodump / drop / mongorestore будет работать нормально с технической точки зрения, он потребует, чтобы вы отключили базу данных, пока вы это делаете, что может повлиять на работу службы.
Если вы хотите сделать это без простоев, И если вы используете наборы реплик MongoDB [1], вы можете сделать это следующим образом:
Затем повторите описанные выше шаги для всех остальных членов набора реплик.
[1] https://docs.mongodb.org/manual/tutorial/deploy-replica-set)
Согласно этому FAQ https://docs.mongodb.com/manual/faq/storage/#faq-disk-size
единственный способ - сделать следующее: