在unix:mac或linux下离线备份neo4j社区版

per*_*eus 10 database backup neo4j nosql

以前我在制作'备份'时出现问题,如此问题所示,我在尝试恢复数据库时遇到错误,因为我在数据库运行时做了一个副本.

所以我用另一台计算机做了一个新数据库的实验(这次用ubuntu)我试过这个:

  • 我创建了一些节点和关系,很少像10(矩阵示例).
  • 然后我停止了服务neo4j
  • 我将包含graph.db的文件夹数据复制到另一个位置
  • 之后我删除了graph.db文件夹并启动了neo4j
  • 它自动创建了一个新的graph.db文件夹,数据库在没有任何数据的情况下以新的形式运行,这是正常的.
  • 然后我再次停止并粘贴旧的graph.db文件夹

我收到一个错误:

 Starting Neo4j Server...WARNING: not changing user waiting 
 for server to be ready... Failed to start within 120 seconds.
Run Code Online (Sandbox Code Playgroud)

错误在5秒后出现,而不是在120秒后出现.

  • 我尝试粘贴名为data的文件夹.同样的错误.

我应该如何在neo4j社区中手动备份和恢复?

我在一些帖子中读到你只复制和恢复但这不起作用.

谢谢您的帮助

Ste*_*ter 31

在Neo4j运行的同时进行一致备份的意义上的在线备份仅在Neo4j企业版中可用.企业版的备份还具有备份的详细一致性检查,这是您在社区中无法获得的.

社区版中唯一安全的选项是干净地关闭Neo4j并递归复制graph.db文件夹.我通常使用:

cd data
tar -zcf graph.db.tar.gz graph.db/
Run Code Online (Sandbox Code Playgroud)

要恢复关闭neo4j,请清除现有的graph.db文件夹并从备份中恢复原始的graph.db文件夹:

cd data
rm -rf graph.db
tar -zxf graph.db.tar.gz
Run Code Online (Sandbox Code Playgroud)

  • 要添加到此,请确保在解压缩之后正确chmod和chown graph.db文件夹.我遇到了许可问题(因为它抱怨索引处于失败状态,实际上吓坏了我) (2认同)

Mfb*_*aer 7

我也遇到了这个问题并编写了以下两个代码:

备份瞬间状态

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/ =将目录更改为graph.db所在的neo4j目录
  • tar -cvzf /var/backups/neo4j/$now.gb.tar.gz graph.db =制作graph.db的压缩副本并保存到 /var/backups/neo4j/$now.gb.tar.gz
  • service neo4j start =重新启动neo4j

从备份中恢复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/ =将目录更改为graph.db所在的neo4j目录
  • 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脚本的经验,我怀疑这是最佳方式.但我认为这是可以理解的,易于定制:)

干杯