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
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.
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