知识库

“storeId 与本机不同”错误的解释

如果您在 $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 Causal Cluster 中的所有实例在 `debug.log` 中都会显示一个类似上述示例的 storeId (列为 randomId) 条目。如果集群中任何成员的 storeId 不同,则会显示 "storeId is different from this machine" 错误。

如何从此不匹配中恢复?

  1. 确定具有最高 randomId 的 Neo4j 节点,这就是上面示例中显示的 storeId。

  2. 对上述节点进行在线备份。

  3. 停止具有较低 randomId 的实例。

  4. 执行 $bin/neo4j-admin unbind

  5. 在该实例上恢复备份。

  6. 启动 Neo4j。

如果您对此主题有疑问或遇到此错误,请随时向 Neo4j 支持部门提交工单。

© . All rights reserved.