Neo4j:EntityNotFoundException:id为+ Inconsistencies的节点

时间:2014-01-25 21:47:14

标签: nosql neo4j debian

我成功地从 Neo4J 2.0.0.M6社区版迁移到 2.0.0.RC1企业版

但是...
当我在做这个查询时:

neo4j-sh (?)$ START n=node(4) RETURN n;

答案是

EntityNotFoundException: Node with id 4

当我进行neo4j备份时,会生成不一致错误

2014-01-25 21:19:58.808+0000 INFO  [org.neo4j]: ERROR: This label scan document refers to a node record that is not in use.
NodeLabelRange[docId=2; {Node[3]: Labels[0], Node[4]: Labels[1], Node[5]: Labels[1], Node[6]: Labels[1], Node[7]: Labels[1], Node[8]: Labels[0], Node[9]: Labels[1], Node[10]: Labels[1], Node[11]: Labels[1], Node[12]: Labels[0], Node[13]: Labels[1], Node[14]: Labels[1], Node[15]: Labels[0], Node[17]: Labels[1], Node[16]: Labels[1], Node[19]: Labels[1], Node[18]: Labels[0], Node[21]: Labels[1], Node[20]: Labels[1], Node[23]: Labels[1], Node[22]: Labels[1], Node[25]: Labels[1], Node[24]: Labels[1], Node[27]: Labels[1], Node[26]: Labels[0], Node[29]: Labels[1], Node[28]: Labels[1], Node[31]: Labels[0], Node[30]: Labels[1]}
Inconsistent with: Node[30,used=false,rel=0,prop=0,labels=Inline(0x0:[]),light]. 100% 

2014-01-25 21:19:58.809+0000 INFO  [org.neo4j]: Inconsistencies found:
    ConsistencySummaryStatistics{
    Number of errors: 28
    Number of warnings: 0
    Number of inconsistent LABEL_SCAN_DOCUMENT records: 1

我在节点3上有不一致 - > 30.
我不再使用那些节点,所以我试图删除它们但没有成功......

那么......如何删除它们或解决问题?

谢谢! Bons baisers de France:D

2 个答案:

答案 0 :(得分:3)

此处记录了从2.0.0-M06移至2.0.0-RC1(或2.0.0)的手动升级:

http://blog.neo4j.org/2013/11/neo4j-200-rc1-final-preparations.html

注意:在里程碑之间手动升级

使用任何以前的里程碑版本创建的数据存储不能与2.0.0-RC1一起使用,除非执行手动升级。这是由于对商店文件进行了不兼容的更改。请谨慎操作,在尝试手动升级之前备份数据。

手动升级(仅限2.0.0-M06,备份后):

  • 在Neo4j 2.0.0-M06上彻底关闭旧版本

    bin/neo4j stop

  • 导航到数据库目录

    cd data/graph.db

  • 删除标签扫描存储(这是具有新格式的关键部分)。它将在启动时重新创建。

    rm -rf schema/label

  • 从新版本的Neo4j 2.0.0-RC1

    开始

    bin/neo4j start

答案 1 :(得分:0)

通常可以修复不一致的数据存储,但需要a)深入了解内部数据结构,以及b)大量的手工工作。

因为你已经从2.0.0-M06移动 - > 2.0.0-RC1我的猜测是,2.0.0中已经解决了不一致的根源。请注意,里程碑版本没有生产质量。

最简单的方法是从头开始重建数据库。如果这是不可能的并且数据库相当小,您可以使用neo4j-shell中的DUMP命令将完整数据集导出到cypher create语句并将其应用于新的2.0.0数据库。