Mam pewne problemy z MongoDB i wykorzystaniem miejsca. W szczególności kiedyś miałem dużą kolekcję około 600 milionów rekordów o łącznej wielkości ponad 110 GB na dysku. Niedawno postanowiłem go usunąć, ponieważ dane były nieaktualne. Aby to zrobić, upuściłem kolekcję za pośrednictwem interfejsu sieciowego rockmongo. W związku z tym rockmongo nie pokazuje mi już kolekcji, jednak moje użycie dysku w ogóle się nie zmieniło.
Czy jest jakaś czysta operacja, o której nie wiem, którą należy uruchomić, aby zsynchronizować bazę danych z plikami bazy danych na dysku?
Próbowałem wykonać „naprawę”, ale system narzeka, że na dysku nie ma wystarczającej ilości miejsca ... to dlatego, że wszystko jest używane przez MongoDB.
źródło
mongodump
,oldDatabase.dropDatabase()
,mongorestore --db newDatabase dump/oldDatabase
.Chociaż powyższe podejście do mongodump / drop / mongorestore będzie działało dobrze z technicznego punktu widzenia, będzie wymagało przełączenia bazy danych w tryb offline podczas pracy, co byłoby zdarzeniem mającym wpływ na usługę.
Jeśli chcesz to zrobić bez przestojów ORAZ jeśli używasz zestawów replik MongoDB [1], możesz to zrobić w następujący sposób:
Następnie powtórz powyższe kroki dla każdego z pozostałych elementów w zestawie repliki.
[1] https://docs.mongodb.org/manual/tutorial/deploy-replica-set )
źródło
Zgodnie z tym FAQ https://docs.mongodb.com/manual/faq/storage/#faq-disk-size
jedynym sposobem jest wykonanie następujących czynności:
źródło