10
votes

Sauvegarde NEO4J Community Edition hors ligne à UNIX: Mac ou Linux

Auparavant, j'ai eu un problème lors de la fabrication d'une "sauvegarde" comme indiqué dans cette question où je reçois une erreur lorsque j'essaie de restaurer la base de données car je faisais une copie lorsque la base de données était en cours d'exécution.

J'ai donc fait une expérience avec une nouvelle base de données d'un autre ordinateur (cette fois avec Ubuntu) J'ai essayé ceci:

  • J'ai créé des nœuds et des relations, très peu comme 10 (l'exemple matrice).
  • Puis j'ai arrêté le service Neo4j
  • J'ai copié les données de dossier contenant graphum.db à un autre emplacement
  • Après cela, j'ai supprimé le dossier graph.db et a commencé Neo4J
  • Il a créé automatiquement un nouveau dossier graph.db et la base de données fonctionne comme neuve sans données, c'est-à-dire normal.
  • Puis je me suis arrêté à nouveau et collez l'ancien dossier Graph.db

    I Obtenir une erreur: xxx

    L'erreur apparaît après 5 secondes après 120 secondes.

    • J'ai essayé de coller le dossier appelé Data . Même erreur.

      Comment dois-je sauvegarder et restaurer dans la communauté néo4j hors ligne manuellement?

      J'ai lu dans certains postes que vous ne copiez et ne fonctionne pas.

      Merci pour votre aide


0 commentaires

3 Réponses :


32
votes

Sauvegarde en ligne, dans un sens de la prise de sauvegarde cohérente tandis que Neo4J est en cours d'exécution, n'est disponible que dans NEO4J Enterprise Edition. La sauvegarde d'Enterprise Edition présente également une vérification de la cohérence de Verbose de la sauvegarde, quelque chose que vous n'obtenez pas dans la communauté non plus.

La seule option sûre de l'édition communautaire consiste à arrêter NEO4J de manière proprement et à copier le dossier graph.db récursivement. J'utilise généralement: p>

cd data
rm -rf graph.db
tar -zxf graph.db.tar.gz


5 commentaires

Pour ajouter à cela, assurez-vous de chmod et de choquer le dossier graphum.db correctement après le non-conturer. Je rencontrais des problèmes d'autorisation (effectivement peur de moi, car il se plaignait des indices dans un état défaillant)


Vous pouvez également faire un rsync -a .... . Cela fera mapper la propriété à l'utilisateur exécutant RSYNC. S'il s'agit de l'utilisateur NEO4J sur la machine cible, cela devrait aller.


Vous n'avez pas à copier l'intégralité du dossier de données? Je reçois cette même erreur lorsque je viens de copier le dossier graph.db


Je ne pouvais pas restaurer la base de données sur Ubuntu en utilisant le gestionnaire de fichiers d'interface graphique. (Supprimé par inadvertance ma base de données et essayé de restaurer un via une copie sauvegardée du dossier). Après la restauration et le redémarrage de Neo4J, j'ai toujours eu une base de données vide. Ce n'est qu'après que j'ai restauré à l'aide de CP -RF, les fichiers sont-ils rétablis correctement. c'est-à-dire (la clause "F" semble obligatoire)


Je sais que cette réponse est un peu ancienne; Je ne sais pas si cette option était disponible pour le moment; Mais maintenant, il y a une commande de dépôt pour la sauvegarde hors ligne dans la communauté édition: Dump - database = graph.db.db --to = / tmp / path / chemin . Doc est ici



0
votes

Si vous ne pouvez pas arrêter et copier le fichier, vous pouvez écrire un script cron pour aller chercher les données de Neo4J et stockez-la dans une autre base de données, disons mongodb. Vous pouvez écrire un script cron pour restaurer également.

Cette méthode n'est que pour ceux qui n'ont pas d'argent pour acheter l'édition d'entreprise et ne peuvent pas arrêter son serveur.


0 commentaires

11
votes

J'ai également couru dans ce numéro et j'ai écrit à la suite de deux codes:

faire une sauvegarde de l'état momentané

Service Neo4j STOP && MAINTENANT = $ (date + "% m_% d_% y") && cd / var / lib / néo4j / Data / Bases de données / && tar -cvzf /var/backups/neo4j/arnow.gb.tar. gz graph.db && service neo4j start

  • Service Neo4J STOP = Arrêtez le service Neo4J
  • maintenant = $ (date + "% m_% d_% y") = Déclare la date actuelle en tant que variable
  • cd / var / lib / néo4j / data / bases de données / = modifier les répertoires sur votre NEO4J DIR où le graphique.db est situé
  • taud -cvzf /var/backups/neo4j/arnow.gb.tar.gz graph.db.db.db = Création de copie compressée du graphique.db et enregistrez-la sur / var /backups/neo4j/arnow.gb.tar.gz
  • service neo4j Démarrer = redémarrez Neo4j

    Restaurer la base de données Neo4J à partir d'une sauvegarde

    Service Neo4j Stop && CD / Var / Lib / Neo4J / Data / Bases de données / && RM -R GRAPH.DB && TAR XF /VAR/BackUps/NEO4J/10_25_2016.GB.TAR.GZ -C / VAR / LIB / NEO4J / Données / Bases de données / && Service Neo4J Démarrer

    • Service Neo4J STOP = Arrêtez le service Neo4J
    • cd / var / lib / néo4j / data / bases de données / = modifier les répertoires sur votre NEO4J DIR où le graphique.db est situé
    • rm -r graph.db = retirez le graphique actuel.db et tout son contenu
    • tar xf /var/backups/neo4j/10_25_2016.gb.tar.gz -c / var / lib / neo4j / Data / Bases de données / = extraire la sauvegarde dans le répertoire où l'ancien graphique .DB était situé. Assurez-vous de régler le nom de fichier 10_25_2016.gb.tar.gz à ce que vous avez appelé votre fichier
    • service neo4j Démarrer = redémarrez Neo4j

      info : Cela semble fonctionner pour moi, mais comme je n'ai pas beaucoup d'expérience avec Bash Scripting, je doute que c'est la manière optimale. Mais je pense que c'est compréhensible et facile de personnaliser :)

      acclamations


0 commentaires