前段时间我们有一些托管服务提供商存储问题,并且(不确定这是否适用于我们的问题)现在我们在数据库中存在一些一致性问题。使用空的graph.db文件夹启动干净的从站,不会导致从主机创建完整的副本数据。
此外,在进行备份时,我们始终会收到一致性检查错误:
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
我无法找到/ google以任何方式解决此问题,没有“mysqlcheck”替代方案或“修复表”工具,没有...
任何帮助/提示都会受到极大关注......
谢谢, 的Andrija
答案 0 :(得分:4)
Neo4j没有提供任何方法来执行此操作。如果可能,您最好的选择可能是加载较旧的备份。
问题是,如果你删除这些损坏的记录,neo4j将会对某些逻辑进行一致性检查(例如删除一个关系将寻找下一个与前一个关联的关系),所以你将无法通过普通的API删除它们。
Neo4j可能能够提供一些可以清除这些不良记录的验证程序,但这是人们想要的东西吗?这些记录大部分都无法恢复,因为大多数这些记录都是Neo4j中某种类型的链接列表条目,一旦丢失了引用,就不知道它属于哪个列表。