以前我在制作“备份”时遇到了问题。如此question所示,我在尝试恢复数据库时遇到错误,因为我在数据库运行时进行了复制。
所以我在另一台计算机上进行了一个新数据库的实验(这次使用的是ubuntu)我试过这个:
我收到错误:
Starting Neo4j Server...WARNING: not changing user waiting
for server to be ready... Failed to start within 120 seconds.
错误在5秒后出现,而不是在120秒后出现。
我应该如何在neo4j社区中手动备份和恢复?
我在一些帖子中读到你只复制和恢复但这不起作用。
感谢您的帮助
答案 0 :(得分:31)
在Neo4j运行时进行一致备份的意义上的在线备份仅适用于Neo4j企业版。企业版的备份还具有备份的详细一致性检查,这是您在社区中无法获得的。
社区版中唯一安全的选项是干净地关闭Neo4j并递归复制graph.db文件夹。我通常使用:
cd data
tar -zcf graph.db.tar.gz graph.db/
要恢复您关闭neo4j,请清除现有的graph.db文件夹并从备份中恢复原始的graph.db文件夹:
cd data
rm -rf graph.db
tar -zxf graph.db.tar.gz
答案 1 :(得分:5)
我也遇到了这个问题并编写了以下两个代码:
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
=停止neo4j服务now=$(date +"%m_%d_%Y")
=将当前日期声明为变量cd /var/lib/neo4j/data/databases/
=将目录更改为你的neo4j目录,其中graph.db位于tar -cvzf /var/backups/neo4j/$now.gb.tar.gz graph.db
=制作graph.db的压缩副本并将其保存到/var/backups/neo4j/$now.gb.tar.gz
service neo4j start
=重启neo4j
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
=停止neo4j服务cd /var/lib/neo4j/data/databases/
=将目录更改为你的neo4j目录,其中graph.db位于rm -r graph.db
=删除当前的graph.db及其所有内容tar xf /var/backups/neo4j/10_25_2016.gb.tar.gz -C /var/lib/neo4j/data/databases/
=将备份解压缩到旧graph.db所在的目录。请务必将文件名10_25_2016.gb.tar.gz
调整为您所谓的文件service neo4j start
=重启neo4j <强>信息强>: 这似乎对我有用,但由于我没有很多关于bash脚本的经验,我怀疑这是最佳方式。但我认为这是可以理解的,也很容易定制:)
干杯
答案 2 :(得分:0)
如果您无法关闭并复制该文件,那么您可以编写一个cron脚本来从Neo4j获取数据并将其存储在其他数据库中,例如mongodb。您也可以编写cron脚本进行恢复。
此方法仅适用于那些没有钱购买企业版且无法关闭服务器的人。