gpt4 book ai didi

neo4j - 加载 Neo4j 数据库转储 (neo4j-shell)

转载 作者:行者123 更新时间:2023-12-04 06:11:29 26 4
gpt4 key购买 nike

我的数据库受到 Neo4j 2.1.1 中的错误的影响,该错误往往会在删除许多节点的区域损坏数据库。事实证明,大多数受影响的关系在我的数据库中都被标记为删除。我有 dump使用 neo4j-shell 编辑其余数据和一个单一的查询。这提供了一个 1.5G 的 Cypher 文件,我需要将其导入 mint 数据库,以使我的数据恢复健康的数据结构。

我注意到转储文件包含 (1) 模式、(2) 节点和 (3) 关系的定义。我已经从文件中删除了模式定义,因为它们可以在以后应用。现在的问题是,由于转储文件在节点创建(采用以下格式:_nodeid)和关系创建期间为节点使用了一系列标识符,似乎所有 CREATE语句(在我的例子中为 33,160,527)需要在单个事务中运行。

我的第一次尝试让服务器忙了 36 个小时,但没有结果。我有 neo4j-shell将数据直接加载到新的数据库目录中,而不是连接到服务器。新的数据库目录中的数据文件从未显示出任何接收数据的迹象,并且消息日志中显示了许多表明线程阻塞的消息。

我想知道将这些数据放回数据库的最佳方法是什么?我应该加载特定的配置文件吗?我需要分配一个大的 Java 堆吗?将如此大的转储文件加载到数据库中的技巧是什么?

最佳答案

dump 命令不适用于更大规模的导出,最初有一个版本可以,但它没有包含在产品中。

如果你还有旧的数据库,你可以尝试一些事情:

  • 联系 Neo4j 支持以帮助您恢复数据
  • 使用我的 store-utils将其复制到新数据库(它将跳过所有损坏的记录)
  • 用cypher查询数据并将结果导出为csv
  • 您可以使用 shell-import-tools为此
  • 然后再次使用 shell 工具或 load csv 从 CSV 导入数据。命令或批处理导入器
  • 关于neo4j - 加载 Neo4j 数据库转储 (neo4j-shell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25109235/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com