知识库

“storeId is different from this machine” 错误解释

如果您在 $NEO4J_HOME/logs/debug.log 中看到类似以下的错误信息:“Failed to serve TxPullRequest for …​ storeId xxxxxx because that storeId is different from this machine with Store…​”,请注意

INFO [o.n.c.c.t.TxPullRequestHandler] Failed to serve TxPullRequest for tx 29193 and
storeId Store{creationTime:1591347647541, randomId:6812995525063259919, upgradeTime:1591347647541, upgradeId:1}
because that storeId is different from this machine with Store
{creationTime:1595941375808, randomId:-4448032294085490672, upgradeTime:1595941375808, upgradeId:1}

这意味着 storeId 不同。当 Neo4j 实例启动时,您会在 debug.log 中看到类似下面的行

INFO [o.n.c.c.s.LocalDatabase] Starting with storeId: Store
{creationTime:1582039045717, randomId:4716225943436743213, upgradeTime:1582039045717, upgradeId:1}

Neo4j 因果集群中的所有实例都会在 `debug.log` 中显示一个 storeId(以 randomId 列出)的条目,形式类似上文所示。如果集群中任何成员的 storeId 不一致,就会出现 “storeId 与此机器不同” 的错误。

如何恢复此不匹配?

  1. 找出拥有最高 randomId 的 Neo4j 节点——这就是上面示例中显示的 storeId

  2. 对该节点进行在线备份

  3. 停止 randomId 较低的实例(们)

  4. 执行 $bin/neo4j-admin unbind

  5. 在该实例(们)上恢复备份

  6. 启动 Neo4j

如果您对该主题有疑问或遇到此错误,欢迎向 Neo4j 支持提交工单。

© . This site is unofficial and not affiliated with Neo4j, Inc.