1

前段时间我们遇到了一些托管服务提供商的存储问题,并且(不确定这是否与我们的问题有关)现在我们在数据库中遇到了一些一致性问题。使用空的 graph.db 文件夹启动干净的从站,不会导致从站从主站获取完整的副本 od 数据。

此外,在进行备份时,我们总是会遇到一致性检查错误:

Full consistency check
....................  10%
....................  20%
....................  30%
....................  40%
....................  50%
....................  60%
....................  70%
....................  80%
...........2013-08-28 08:50:28.184+0000 INFO  [org.neo4j]: ERROR: The next block is not in use.
        DynamicRecord[2987807,used=true,light=false(120),type=0,data=byte[size=120],next=2987808]
        Inconsistent with: DynamicRecord[2987808,used=false,light=false(105),type=0,data=byte[size=105],next=-1]
.........  90%
...................2013-08-28 08:50:29.653+0000 INFO  [org.neo4j]: WARNING: The name is empty.
        PropertyIndexRecord[2035,in use,nameId=2036,propCount=0]
        Inconsistent with: DynamicRecord[2036,used=true,light=false(0),type=0,data=byte[],next=-1]
2013-08-28 08:50:29.657+0000 INFO  [org.neo4j]: WARNING: The block is empty.
        DynamicRecord[2036,used=true,light=false(0),type=0,data=byte[],next=-1]
. 100%
2013-08-28 08:50:29.658+0000 INFO  [org.neo4j]: Inconsistencies found: ConsistencySummaryStatistics{
        Number of errors: 1
        Number of warnings: 2
        Number of inconsistent STRING_PROPERTY records: 1

我找不到/谷歌任何方法来解决这个问题,没有“mysqlcheck”替代方案或“修复表”工具,什么都没有......

任何帮助/提示将不胜感激...

谢谢,安德里亚

4

1 回答 1

4

Neo4j 没有提供任何方法来做到这一点。如果可能,您最好的选择可能是加载较旧的备份。

问题是,如果你删除了这些损坏的记录,neo4j 会对某些逻辑进行一致性检查(比如删除一个关系会寻找下一个与前一个链接的关系),所以你不会能够通过普通 API 删除它们。

Neo4j 可能能够提供一些可以清除这些不良记录的验证器,但这是人们想要的吗?这些记录大部分无法恢复,因为其中大多数是 Neo4j 中的某种类型的链表条目,一旦您丢失了引用,您就不知道它属于哪个列表。

于 2013-08-28T21:56:06.037 回答