我看到有一个工具可以通过Java或备份工具对正在运行的Neo4J数据库进行备份。
备份显然需要一些时间才能完成,在此期间可能会添加,修改或删除其他节点。是否可以在特定时刻拍摄图表数据库的快照?
我的用例:N4J用于存储存储在别处的事件。我希望能够及时拍摄图表的快照,然后在以后恢复时,根据备份的时间知道图表中缺少的内容,并且能够通过添加缺失的事件,重建目前准确的数据库的完整版本。
答案 0 :(得分:1)
对related question有一个很好的讨论,让我切入追逐。
如果您使用的是商业版neo4j,那么neo4j backup options和/或backup tool是您的最佳选择。
如果您正在使用社区版,那么您目前无法进行在线备份。我有几个使用neo4j社区运行的应用程序,我们有一个运行在03:00的cron作业。它关闭应用程序,并在另一个位置创建数据库的副本(通过复制,我的意思是它实际上创建了DB目录的tar.gz存档)。完成其他维护后,应用程序将重新启动。
根据文件复制性能和数据库大小,这不是太糟糕。我们有一个中等大小的DB,我们每晚只接受大约10分钟的停机时间。
答案 1 :(得分:1)
neo4j-backup
工具是Neo4j企业版的一部分。在您启动它时,它会持续备份。备份完成后,将运行详细一致性检查以验证可恢复性。它可以作为完全备份或递增。
此工具不包含特定时间点的还原或与其他备份进行比较。通过将其与经典文件备份工具相结合,可以实现时间点恢复。我在backup2l方面取得了很好的经验。 neo4j-backup
将作为backup2l PRE_BACKUP
的一部分启动。同样的方法应该适用于那里的任何其他备份工具。
使用您的备份工具,您可以从归档中的所需时间点检索完整的graph.db
目录并使用它们。