MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zmniejszenie rozmiaru pliku bazy danych MongoDB

AKTUALIZACJA: z compact polecenie i WiredTiger wygląda na to, że dodatkowe miejsce na dysku zostanie faktycznie zwolnione dla systemu operacyjnego.

AKTUALIZACJA: od wersji 1.9+ istnieje compact polecenie.

To polecenie wykona zagęszczenie „w linii”. Nadal będzie potrzebować dodatkowej przestrzeni, ale nie tak dużo.

MongoDB kompresuje pliki przez:

  • kopiowanie plików do nowej lokalizacji
  • przeglądanie dokumentów i ponowne ich zamawianie / ponowne ich rozwiązywanie
  • zastąpienie oryginalnych plików nowymi plikami

Możesz to zrobić, uruchamiając mongod --repair lub łącząc się bezpośrednio i uruchamiając db.repairDatabase() .

W obu przypadkach potrzebujesz miejsca, aby skopiować pliki. Teraz nie wiem, dlaczego nie masz wystarczająco dużo miejsca, aby wykonać kompresję, jednak masz kilka opcji, jeśli masz inny komputer z większą ilością miejsca.

  1. Eksportuj bazę danych na inny komputer z zainstalowanym Mongo (używając mongoexport ), a następnie możesz zaimportować tę samą bazę danych (za pomocą mongoimport ). Spowoduje to powstanie nowej bazy danych, która będzie bardziej skompresowana. Teraz możesz zatrzymać oryginalnego mongod zastąp nowymi plikami bazy danych i gotowe.
  2. Zatrzymaj obecnego mongoda i skopiuj pliki bazy danych na większy komputer i uruchom naprawę na tym komputerze. Następnie możesz przenieść nowe pliki bazy danych z powrotem na oryginalny komputer.

Obecnie nie ma dobrego sposobu na „kompaktowanie w miejscu” za pomocą Mongo. A Mongo z pewnością potrafi pochłonąć dużo miejsca.

W tej chwili najlepszą strategią zagęszczania jest uruchomienie konfiguracji Master-Slave. Następnie możesz skompaktować Slave, pozwolić mu nadrobić zaległości i przełączyć je. Wiem, że jeszcze trochę owłosione. Być może zespół Mongo wymyśli lepsze zagęszczenie w miejscu, ale nie sądzę, by było ono wysoko na ich liście. Obecnie zakłada się, że przestrzeń dyskowa jest tania (i zwykle tak jest).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak skonfigurować klaster MongoDB obsługujący sesje?

  2. Czy można uzyskać pojedynczy wynik w sumie?

  3. Skrobanie i indeksowanie stron internetowych za pomocą Scrapy i MongoDB

  4. Kompresja prefiksu indeksu w MongoDB 3.0 WiredTiger

  5. Wskazówki dotyczące planowania schematu MongoDB