使用事务日志从 Neo4j 备份恢复

Restore from Neo4j backup using transaction logs

据我了解,neo4j-backup 会针对之前的完整备份进行增量备份。

因为我们可能会有很多数据,出于审计目的,这些数据必须在给定的 N 天内维护,因此在给定的时间内每隔 X 天维护一次数据库的完整备份会非常昂贵天(比如说,我们需要每小时备份一次数据库状态)。

我们现在正在做的是做一个完整备份,将它存储为当天的版本 1,然后每隔 X 时间我们做一次增量备份,只存储 neostore.transaction.db.XX 个文件(或nineo_XX for 2.1.x) 作为给定每小时状态的备份。

我的问题是:我们如何才能恢复一天中任何给定时间的数据库(版本 N)?如果我使用完整备份启动数据库,它会工作,但如果我抓取当天版本 N 的事务日志并将它们复制到版本 1 文件夹中,数据库将启动,但是 MATCH (n) RETURN COUNT(n) returns只有状态 1 的节点数量,甚至 MATCH (n) RETURN n 在浏览器 shell 中失败并返回 "Node with id XX" 列。

我目前正在使用2.2.0-M02企业版进行测试,但理论上这也适用于2.1.x

Neo4j 备份功能就是这样 - 以防万一出现问题。增量备份自然比完整备份快,但我不认为它是用作图形版本控制解决方案。

看看 Neo4j ChangeFeed Module,它可能足以满足您的审计目的,也可能不够好。它可能需要修改以保留一定的天数,而不是一些过去的数据库修改(这就是它现在所做的)。