Backup neo4j Community Edition offline in Unix: Mac oder Linux

7

Zuvor hatte ich ein Problem beim Erstellen eines "Backups", wie in diesem Frage , bei der beim Versuch, die Datenbank wiederherzustellen, ein Fehler auftritt, weil ich eine Kopie erstellt habe, als die Datenbank ausgeführt wurde.

Also habe ich ein Experiment mit einer neuen Datenbank von einem anderen Computer (diesmal mit ubuntu) gemacht. Ich habe es versucht:

  • Ich habe einige Knoten und Relationen erstellt, sehr wenige wie 10 (das Matrix-Beispiel).
  • Dann habe ich den Dienst neo4j
  • gestoppt
  • Ich habe die Ordnerdaten, die graph.db enthalten, an einen anderen Ort kopiert
  • Danach habe ich den Ordner graph.db gelöscht und neo4j gestartet
  • Es wurde automatisch ein neuer Ordner "graph.db" erstellt und die Datenbank wird als neu ohne Daten ausgeführt, das ist normal.
  • Dann stoppte ich erneut und füge den alten graph.db Ordner
  • ein

Ich bekomme einen Fehler:

%Vor%

Der Fehler tritt nach 5 Sekunden auf, nicht nach 120 Sekunden.

  • Ich habe versucht, den Ordner data einzufügen. Derselbe Fehler.

Wie sollte ich offline in der neo4j-Community offline sichern und wiederherstellen?

Ich habe einige Posts gelesen, die Sie nur kopieren und wiederherstellen, aber das funktioniert nicht.

Danke für Ihre Hilfe

    
perseus 29.08.2014, 11:50
quelle

3 Antworten

28

Die Online-Sicherung ist im Sinne einer konsistenten Sicherung während Neo4j nur in der Neo4j Enterprise Edition verfügbar. Das Backup der Enterprise Edition enthält auch eine ausführliche Konsistenzprüfung der Sicherung, die Sie auch nicht in der Community erhalten.

Die einzige sichere Option in der Community Edition ist es, Neo4j sauber herunterzufahren und den Ordner graph.db rekursiv zu kopieren. Ich verwende normalerweise:

%Vor%

Wenn Sie neo4j herunterfahren möchten, bereinigen Sie einen vorhandenen Ordner graph.db und stellen Sie den ursprünglichen Ordner graph.db aus Ihrem Backup wieder her:

%Vor%     
Stefan Armbruster 29.08.2014, 13:11
quelle
3

Ich bin auch auf dieses Problem gestoßen und habe folgende zwei Codes geschrieben:

Sichern Sie den momentanen Zustand

service neo4j stop && now=$(date +"%m_%d_%Y") && cd /var/lib/neo4j/data/databases/ && tar -cvzf /var/backups/neo4j/$now.gb.tar.gz graph.db && service neo4j start

  • service neo4j stop = Stoppen Sie den neo4j-Dienst
  • now=$(date +"%m_%d_%Y") = deklariere das aktuelle Datum als Variable
  • cd /var/lib/neo4j/data/databases/ = wechsle die Verzeichnisse in dein neo4j-Verzeichnis, wo sich graph.db befindet
  • tar -cvzf /var/backups/neo4j/$now.gb.tar.gz graph.db = Erstelle eine komprimierte Kopie der graph.db und speichere sie in /var/backups/neo4j/$now.gb.tar.gz
  • service neo4j start = neo4j neustarten

Wiederherstellen der neo4j-Datenbank von einem Backup

service neo4j stop && cd /var/lib/neo4j/data/databases/ && rm -r graph.db && tar xf /var/backups/neo4j/10_25_2016.gb.tar.gz -C /var/lib/neo4j/data/databases/ && service neo4j start

  • service neo4j stop = Stoppen Sie den neo4j-Dienst
  • cd /var/lib/neo4j/data/databases/ = wechsle die Verzeichnisse in dein neo4j-Verzeichnis, wo sich graph.db befindet
  • rm -r graph.db = entferne die aktuelle graph.db und alle ihre Inhalte
  • tar xf /var/backups/neo4j/10_25_2016.gb.tar.gz -C /var/lib/neo4j/data/databases/ = Extrahiere die Sicherung in das Verzeichnis, in dem sich die alte graph.db befand. Stellen Sie sicher, dass Sie den Dateinamen 10_25_2016.gb.tar.gz an den Namen Ihrer Datei anpassen
  • service neo4j start = neo4j neustarten

Info : Dies scheint für mich zu funktionieren, aber da ich nicht viel Erfahrung mit Bash Scripting habe, bezweifle ich, dass dies der optimale Weg ist. Aber ich denke, es ist verständlich und einfach anzupassen:)

Prost

    
Joran 25.10.2016 14:20
quelle
1

Wenn Sie die Datei nicht herunterfahren und kopieren können, können Sie ein Cron-Skript schreiben, um die Daten von Neo4j zu holen und in einer anderen Datenbank zu speichern, sagen wir mongodb. Sie können auch Cron-Skript schreiben, um es wiederherzustellen.

Diese Methode ist nur für diejenigen, die kein Geld haben, um Enterprise Edition zu kaufen und kann seinen Server nicht herunterfahren.

    
Adarsh Raj 24.11.2014 11:32
quelle

Tags und Links