Neo4j Neo.DatabaseError.General.UnknownError:IdAllocation状态可能已损坏或与群集不同步

Neo4j Neo.DatabaseError.General.UnknownError:IdAllocation状态可能已损坏或与群集不同步,neo4j,Neo4j,我尝试在graph.db中创建节点,但出现以下错误: Neo.DatabaseError.General.UnknownError: IdAllocation state is probably corrupted or out of sync with the cluster. Local highId is 573057 and allocation range is IdRange[32768-33791, defrag []] 通过复制二进制文件并对其进行升级,我的数据库已从Neo4j

我尝试在graph.db中创建节点,但出现以下错误:

Neo.DatabaseError.General.UnknownError: IdAllocation state is probably corrupted or out of sync with the cluster. Local highId is 573057 and allocation range is IdRange[32768-33791, defrag []]
通过复制二进制文件并对其进行升级,我的数据库已从Neo4j社区版(Neo4j-Community-3.0.6)迁移到企业版(Neo4j-Enterprise-3.2.3)。然后我配置了因果集群

以下是debug.log中的日志:

2018-04-12 07:11:43.870+0000 ERROR [o.n.b.v.r.ErrorReporter] Client triggered an unexpected error [UnknownError]: IdAllocation state is probably corrupted or out of sync with the cluster. Local highId is 573057 and allocation range is IdRange[15360-16383, defrag []], reference 2ca1aca3-3a60-441c-9fe1-dbd431ae400a. IdAllocation state is probably corrupted or out of sync with the cluster. Local highId is 573057 and allocation range is IdRange[15360-16383, defrag []]
java.lang.IllegalStateException: IdAllocation state is probably corrupted or out of sync with the cluster. Local highId is 573057 and allocation range is IdRange[15360-16383, defrag []]
        at org.neo4j.causalclustering.core.state.machines.id.ReplicatedIdGenerator.respectingHighId(ReplicatedIdGenerator.java:210)
        at org.neo4j.causalclustering.core.state.machines.id.ReplicatedIdGenerator.storeLocally(ReplicatedIdGenerator.java:194)
        at org.neo4j.causalclustering.core.state.machines.id.ReplicatedIdGenerator.nextId(ReplicatedIdGenerator.java:126)
        at org.neo4j.kernel.impl.store.id.IdGenerator$Delegate.nextId(IdGenerator.java:62)
        at org.neo4j.kernel.impl.store.CommonAbstractStore.nextId(CommonAbstractStore.java:571)
        at org.neo4j.kernel.impl.transaction.state.PropertyCreator.primitiveSetProperty(PropertyCreator.java:140)
        at org.neo4j.kernel.impl.transaction.state.TransactionRecordState.nodeAddProperty(TransactionRecordState.java:418)
        at org.neo4j.kernel.impl.storageengine.impl.recordstorage.TransactionToRecordStateVisitor.visitNodePropertyChanges(TransactionToRecordStateVisitor.java:123)
        at org.neo4j.storageengine.api.txstate.TxStateVisitor$Delegator.visitNodePropertyChanges(TxStateVisitor.java:205)
        at org.neo4j.kernel.impl.api.state.TxState$14.visitPropertyChanges(TxState.java:405)
        at org.neo4j.kernel.impl.api.state.PropertyContainerStateImpl.accept(PropertyContainerStateImpl.java:214)
        at org.neo4j.kernel.impl.api.state.NodeStateImpl.accept(NodeStateImpl.java:152)
        at org.neo4j.kernel.impl.api.state.TxState.accept(TxState.java:245)
        at org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine.createCommands(RecordStorageEngine.java:303)
        at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commit(KernelTransactionImplementation.java:553)
如何修复此错误


谢谢。

您运行的查询是什么?这张图之前是什么样子的?而且,可能最重要的是,您是否能够在升级后但在启用群集之前使用数据库?最后,我不清楚集群中的所有实例是否都在同一版本上。是吗?我的查询如下:在创建集user={userId:123123,userName:null}上合并(user:user{userId:123123});我没有在StanLone企业实例上检查DB,而是在集群上检查它,并且能够运行match()查询。所有实例都运行同一版本的neo4j-enterprise-3.2.3。如果关闭其他节点,只保留leader节点,然后关闭该节点,并在恢复之前将其重新配置为单个实例,那么您是否能够正常使用它?我找到了问题的根本原因。第一次,我配置了因果集群,并用default graph.db启动它。然后我删除了默认数据库,并从我的CommunityEdition实例中放入二进制文件。在单模式实例中,我升级了DB并将其传输到集群的每个成员。问题开始于我第一次启动集群时。Neo4j在./data/cluster state/*中创建了集群状态。所以我升级的DB不起作用,因为集群使用的是原始graph.DB的存储状态,而不是我的。所以我清除了集群状态,我的数据库工作正常。谢谢,Rebeca。为了补充@Alex的观点,我们需要先关闭所有集群上的neo4j,然后从
/data/cluster state/*
中删除内容,一旦从所有集群中删除,我们就可以在它们上重新启动neo4j,然后它就可以工作了。在我的例子中,在我的第一次尝试中,我没有关闭所有集群上的neo4j,而是一个接一个地关闭,在这种情况下,它不起作用。所以只要抬头一看!