MongoDB ist eine sehr gute NoSQL-Datenbank und für große unstrukturierte Datenmengen eine Alternative zu relationalen Datenbanksystemen. Die Hardware ist im BigData-Umfeld oftmals schon so ausgelegt, dass der Platz niemals ausgehen sollte. Jedoch kann es auch mal Bewegungsdaten in der Datenbank geben, welche gelöscht werden. Und das Löschen von Daten in der MongoDB macht diese aber nicht schlanker, sondern einmal belegter Speicherplatz bleibt im Besitz der Datenbank. Diesen können Sie jedoch mit einfachen Mitteln wieder freigeben, wenn der Platz nicht mehr ausreichen sollte.

RepairDatabase

Mit RepairDatabase können Sie über zwei Wege den belegten und ungenutzten Speicher wieder freigeben. Wenn Sie über über einen Mongo-Client verbunden sind, können Sie im Client folgenden Befehl absetzen:

db.repairDatabase()

Alternativ können Sie auch den Datenbank-Service herunterfahren und auf der Kommandozeile folgendes Kommando nutzen:

mongod --dbpath /var/lib/mongo --repair 

Das Kommando gibt ebenfalls ungenutzten Speicher wieder frei. Jedoch klappt dies nur, wenn der verfügbarer freie Festplattenplatz mindestens genauso groß ist, wie die Datenbank selbst. Wenn dies nicht der Fall ist, müssen Sie mit einer weiteren Festplatte das Verkleinern durchführen. Der Befehl wird dann einfach um den RepairPath ergänzt:

mongod --dbpath /var/lib/mongo --repair --repairpath /external/drive

 

Compact Collections

Alternativ zur gesamten MongoDB können Sie auch einzelne Collections reduzieren. Dazu müssen Sie sich wieder mittels Mongo-Client anmelden und folgenden Befehl ausführen:

db.runCommand( { compact : 'myPictures' } )

Sollten Sie sich in einem ReplicaSet befinden, kann die Operation ein wenig länger dauern. Daher muss in diesem Fall auch der Force-Parameter ergänzt werden:

db.runCommand( { compact : 'myPictures', force:true } )
Speicherplatz in MongoDB freigeben
Markiert in:            

2 thoughts on “Speicherplatz in MongoDB freigeben

  • 13. September 2015 bei 02:55
    Permalink

    Genau das habe ich gesucht, danke dir!

    Antwort
  • 21. Dezember 2015 bei 08:28
    Permalink

    freut mich dass auch Du Dich für dieses heiße Thema interessierst.

    Antwort

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>