Neo4j Datenbank leeren in Ubuntu - Tutorial

Dieses Tutorial zeigt auf wie ihr eure Neo4j Datenbank leeren bzw. löschen könnt. Das ganze erfolgt per Konsole, weil dies einfach am saubersten ist. Natürlich können Programme wie WinSCP unter Windows das auch sehr einfach erledigen. Falls eingerichtet, dann greift ihr am besten dazu wenn es um das reine Löschen in diesem Tutorial geht.

Neo4j start und stop Basics

Neo4j schützt natürlich seine Datenbank, so lange es läuft. Daher müssen wir es abschalten. Allerdings kann der Befehl unterschiedlich lauten. Es kommt hier darauf an, ob ihr Neo4j als Service gestartet habt oder direkt.

Service abschalten

Wenn ihr euch an das letzte Neo4j-Tutorial gehalten habt, wird Neo4j bei euch vermutlich als Service laufen. Aber das ist eher für den Produktivbetrieb gedacht, damit sichergestellt ist, dass beim Neustart Neo4j sogleich mitstartet. Ich empfehle daher, dass ihr zum Testen den Service abschaltet und es mit den normalen Start- und Stop-Befehlen probiert. Natürlich könnte man auch den Service abschalten und neustarten. Aber das funktioniert nicht in allen Fällen.

Bevor wir den Service abschalten, schauen wir ob er denn überhaupt läuft mit service neo4j-service status.

Da er noch läuft, kannst du ihn nun per service neo4j-service stop abschalten. Dann kannst du auch im Browser prüfen ob Neo4j noch erreichbar ist. Dies sollte natürlich jetzt nicht der Fall sein.

Solltest du Probleme haben im späteren Verlauf, weil Neo4j noch irgendwie gestartet ist, so gebe einfach killall java ein und die Probleme lösen sich in Luft auf.

Neo4j starten und stoppen

Jetzt schauen wir uns an wie man Neo4j von Hand starten und beenden kann. Zum Starten reicht /var/lib/neo4j/bin/neo4j start aus. Danach ist Neo4j wieder im Browser erreichbar, genau so als wenn er als Service gestartet wäre.

Zum Abschalten von Neo4j reicht nun ein /var/lib/neo4j/bin/neo4j stop aus.

Neo4j für Tests einrichten

Sicherlich wollt ihr zum Anfang auch erst einmal Neo4j testen. Dabei fallen natürlich Datenbanken an, die viele sinnlose Werte beinhalten oder auch Indizes. Jetzt könntet ihr mit einem Neo4j-Befehl die Datenbank wieder leeren. Aber das macht nur bei kleinen Datenmengen wirklich Sinn. Habt ihr Datenbestände größer als 100.000 Knoten, dann löscht lieber die Datenbank per Unix-Befehl und seid damit schneller und sicherer, dass alle Daten gelöscht sind.

Zunächst stellen wir mit nano /var/lib/neo4j/conf/neo4j.properties in der Neo4j.properties-Datei eine Zeile um.

#keep_logical_logs=7 days wird dabei in keep_logical_logs=100M size umgeändert. Also den Kommentar löschen und auf die richtige Schreibweise achten. Jetzt STRG+X und danach Y und bestätigen per Enter.

Zur Übernahme könntet ihr nun /var/lib/neo4j/bin/neo4j restart ausführen. Wir nehmen diese Umstellung vor, damit nicht unnötig Log-Dateien erstellt werden. Im Produktivbetrieb bitte wieder auf die normale Einstellung zurückstellen.

Datenbank löschen bzw. leeren

Nachdem wir jetzt die Befehle kennengelernt haben, geht es nun an die Anwendung dieser. Wir gehen davon aus, dass die Datenbank gefüllt ist und ihr die Datenbank reseten wollt. Zunächst wie oben erwähnt muss dazu Neo4j beendet werden. Dazu tippt ihr /var/lib/neo4j/bin/neo4j stop ein.

Jetzt rm -rf /var/lib/neo4j/data/graph.db in der Konsole ausführen um die Datenbank zu löschen.

Danach noch Neo4j starten (neue und leere Datenbank erzeugen) mit /var/lib/neo4j/bin/neo4j start. Das ist nun die Routine die ihr immer wieder wiederholen müsst wenn ihr die Datenbank leeren wollt.

Fazit

Hier einmal die einfachste Methode gezeigt wie ihr am schnellsten Neo4j zurückstellen könnt und eine frische Datenbank bekommt.

Kommentar schreiben

Kommentare: 2
  • #1

    Ricardo (Dienstag, 14 Oktober 2014 08:36)

    Genau das wonach ich schonmal gesucht habe. Hatte damals auch das Problem, dass ich mir nichts sicher war welche Commands nun wichtig sind dafür. Sehr schön beschrieben.

  • #2

    kwoxer (Dienstag, 14 Oktober 2014 17:28)

    Bittesehr Ricardo, ich denke das Problem ist eher, dass Nutzer keine Vorstellung davon haben wie es später auf der Konsole aussieht. Daher sind die Bilder oben sehr hilfreich auch ohne es direkt nachzustellen nachvollziehen zu können als wenn man selber den Prozess durchlebt hat. Allerdings würde ich mir wirklich wünschen, dass es einem Befehl gibt, der den Server herunterfährt, die Datenbank löscht und wieder hochfährt. Naja man bekommt halt nicht alles mitgeliefert und müsste das selbst skripten.

    LG