如何从事务日志中恢复Neo4J 3.0数据库?

时间:2016-10-20 11:12:34

标签: neo4j

意外MATCH (n) DETACH DELETE (n)后,是否可以使用事务日志还原数据库? 我相信我的graph.db/neostore.transaction.db.0代表了数据库的完整交易历史记录。

2 个答案:

答案 0 :(得分:2)

要部分应用事务日志,可以使用上述的DatabaseRebuildTool直到3.4版。这些工具在提交f2ceb1a5中被设为私有。
要使用RebuildTool,您可以按照以下步骤操作(在Windows 3.3.9上进行了测试)。
here中可以找到带有3.3版更改的分支。

  • 克隆neo4j
  • 签出所需版本
  • 修改tools \ pom.xml以包括DatabaseRebuildTool的执行(复制一个并将类更改为org.neo4j.tools.applytx.DatabaseRebuildTool,用dbrebuild替换id和fileName)
  • 根据您的版本的自述文件中的说明构建neo4j
  • 使用CD工具
  • 复制checkTxLogs.bat并重命名为dbrebuild.bat
  • 更改dbrebuild.bat中的类以将DatabaseRebuildTool与org.neo4j.tools.applytx.DatabaseRebuildTool匹配
  • 使用必需的参数运行dbrebuild.bat,或者不使用args打印帮助(可能需要几秒钟)

    dbrebuild.bat --from path\to\graph.db --to path\to\new.db -i --overwrite-to

  • 应用交易,直到所需的交易ID或最新的交易(帮助,退出)

    apply last

注意:在使用新数据库启动neo4j之前,您必须退出dbrebuild进程,因为一次只能有一个进程访问该数据库。

答案 1 :(得分:1)