Backup neo4j community edition offline in unix: mac or linux

半腔热情 提交于 2019-11-28 09:20:25

Online backup, in a sense of taking a consistent backup while Neo4j is running, is only available in Neo4j enterprise edition. Enterprise edition's backup also features a verbose consistency check of the backup, something you do not get in community either.

The only safe option in community edition is to shutdown Neo4j cleanly and copy away the graph.db folder recursively. I'm typically using:

cd data
tar -zcf graph.db.tar.gz graph.db/

For restoring you shut down neo4j, clean out a existing graph.db folder and restore the original graph.db folder from your backup:

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

I also ran into this issue and wrote following two codes:

Make backup of momentary state

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 = stop the neo4j service
  • now=$(date +"%m_%d_%Y") = declare the current date as variable
  • cd /var/lib/neo4j/data/databases/ = change directories to your neo4j dir where the graph.db is located
  • tar -cvzf /var/backups/neo4j/$now.gb.tar.gz graph.db = make a compressed copy of the graph.db and save it to /var/backups/neo4j/$now.gb.tar.gz
  • service neo4j start = restart neo4j

Restore neo4j database from a 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 = stop the neo4j service
  • cd /var/lib/neo4j/data/databases/ = change directories to your neo4j dir where the graph.db is located
  • rm -r graph.db = remove the current graph.db and all its contents
  • tar xf /var/backups/neo4j/10_25_2016.gb.tar.gz -C /var/lib/neo4j/data/databases/ = Extract the backup to the directory where the old graph.db was located. Be sure to adjust the filename 10_25_2016.gb.tar.gz to what you called your file
  • service neo4j start = restart neo4j

Info: This seems to work for me but as I do not have alot of experience with bash scripting I doubt this is the optimal way. But I think it is understandable and easy to customize :)

Cheers

If you cant shutdown and copy the file then you can write a cron script to fetch the data from Neo4j and store it in some other database , say mongodb. You can write cron script to restore also.

This method is only for those who dont have money to buy enterprise edition and cant shutdown his server .

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!