【问题标题】:#neo4j ERROR [o.n.k.h.c.HighAvailabilityModeSwitcher]: Error while trying to switch to slave#neo4j 错误 [o.n.k.h.c.HighAvailabilityModeSwitcher]:尝试切换到从属设备时出错
【发布时间】:2014-01-23 23:57:46
【问题描述】:

ubuntu 13.04 上的 neo4j-ent 2.0 作为从属设备加入集群的问题。服务器实例被卡住试图成为从站。

ERROR [o.n.k.h.c.HighAvailabilityModeSwitcher]:尝试切换到从属设备时出错 org.neo4j.kernel.impl.nioneo.store.MismatchingStoreIdException:

集群设置:

1 个嵌入式 neo4j 2.0 前端 java 服务

1 neo4j-arbiter 2.0

1 neo4j-服务 2.0

导致此集群状态的操作:

  1. 从 neo4j 嵌入式服务开始

  2. 启动仲裁实例

2014-01-23 02:03:59.903+0000 调试 [o.n.c.p.a.m.LearnerState$1]:LearnerState: start-[join]->learner conversation-id:5/3# 2014-01-23 02:03:59.904+0000 调试 [o.n.c.p.a.m.AcceptorState$1]: AcceptorState: start-[join]->acceptor conversation-id:5/3# 2014-01-23 02:03:59.929+0000 DEBUG [o.n.c.p.a.m.LearnerState$2]:从对话 5/3# 学习并关闭实例 2,内容是更改集群配置,加入:5 2014-01-23 02:03:59.930+0000 调试 [o.n.c.p.a.m.LearnerState$2]:LearnerState: learner-[learn]->learner from:cluster://192.168.0.3:5001 instance:2 conversation-id:5/3 # 2014-01-23 02:03:59.932+0000 调试 [o.n.c.p.a.m.AtomicBroadcastState$2]: AtomicBroadcastState: 加入-[broadcastResponse]->加入对话-id:5/3# 2014-01-23 02:03:59.934+0000 调试 [o.n.c.p.c.ClusterState$3]: ClusterState: 加入-[configurationChanged]->进入对话-id:5/3# 2014-01-23 02:03:59.934+0000 INFO [o.n.c.c.ClusterJoin]:加入集群:名称:neo4j.ha 节点:{3=cluster://192.168.0.3:5001, 5=cluster://192.168.0.5 :5001} 角色:{coordinator=3}

  1. 从我们的第三台机器启动后端 neo4j-ent 2.0 实例 仲裁者日志

ClusterState:进入-[configurationRequest]->进入 来自:cluster://192.168.0.2:5001 conversation-id:1/12# 2014-01-23 02:08:44.962+0000 信息 [o.n.c.c.NetworkSender]: cluster://192.168.0.5:5001 为 /192.168.0.2:5001 开辟了一个新频道 2014-01-23 02:08:44.981+0000 调试 [o.n.c.p.a.m.AcceptorState$2]: AcceptorState:acceptor-[prepare]->acceptor 来自:cluster://192.168.0.3:5001 实例:3 对话 ID:1/12# 2014-01-23 02:08:44.990+0000 调试 [o.n.c.p.a.m.AcceptorState$2]: AcceptorState:acceptor-[accept]->acceptor 来自:cluster://192.168.0.3:5001 实例:3 对话 ID:1/12# 2014-01-23 02:08:44.995+0000 调试 [o.n.c.p.a.m.LearnerState$2]: 从对话 1/12# 和内容中学习并关闭实例 3 是更改集群配置,加入:1 2014-01-23 02:08:44.996+0000 DEBUG [o.n.c.p.a.m.LearnerState$2]:LearnerState:learner-[learn]->learner 来自:cluster://192.168.0.3:5001 实例:3 对话 ID:1/12# 2014-01-23 02:08:44.996+0000 调试 [o.n.c.p.a.m.AtomicBroadcastState$3]:AtomicBroadcastState: 广播-[broadcastResponse]->广播对话-id:1/12# 2014-01-23 02:08:44.997+0000 调试 [o.n.c.p.c.ClusterState$4]: ClusterState:进入-[configurationChanged]->进入 对话 ID:1/12# 2014-01-23 02:08:45.030+0000 调试 [o.n.c.p.e.ElectionState$2]:ElectionState: 选举-[投票:协调员]->选举来自:cluster://192.168.0.2:5001 对话 ID:1/13# 2014-01-23 02:08:45.116+0000 调试 [o.n.c.p.a.m.AcceptorState$2]:AcceptorState: 接受者-[准备]->接受者来自:cluster://192.168.0.2:5001 实例:4 对话 ID:1/13# 2014-01-23 02:08:45.130+0000 调试 [o.n.c.p.a.m.AcceptorState$2]:AcceptorState: 接受器-[接受]->接受器来自:cluster://192.168.0.2:5001 实例:4 对话 ID:1/13# 2014-01-23 02:08:45.144+0000 调试 [o.n.c.p.a.m.LearnerState$2]:从实例 4 中学习并关闭 对话 1/13#,内容是更改集群配置, elected:3 as coordinator 2014-01-23 02:08:45.145+0000 DEBUG [o.n.c.p.a.m.LearnerState$2]:LearnerState:learner-[learn]->learner 来自:cluster://192.168.0.2:5001 instance:4 conversation-id:1/13# 2014-01-23 02:08:45.146+0000 调试 [o.n.c.p.a.m.AtomicBroadcastState$3]:AtomicBroadcastState: 广播-[broadcastResponse]->广播对话-id:1/13# 2014-01-23 02:08:45.148+0000 调试 [o.n.c.p.c.ClusterState$4]: ClusterState:进入-[configurationChanged]->进入 对话 ID:1/13# 2014-01-23 02:08:45.154+0000 调试 [o.n.c.p.a.m.AcceptorState$2]:AcceptorState: 接受者-[准备]->接受者来自:cluster://192.168.0.3:5001 实例:5 对话 ID:3/17# 2014-01-23 02:08:45.163+0000 调试 [o.n.c.p.a.m.AcceptorState$2]:AcceptorState: 接受者-[接受]->接受者来自:cluster://192.168.0.3:5001 实例:5 对话 ID:3/17# 2014-01-23 02:08:45.175+0000 调试 [o.n.c.p.a.m.LearnerState$2]:从实例 5 中学习并关闭 对话 3/17#,内容为 MemberIsAvailable[ 角色: master, InstanceId: 3, Role URI: ha://192.168.0.3:6001?serverId=3, 集群 URI:cluster://192.168.0.3:5001] 2014-01-23 02:08:45.176+0000 调试 [o.n.c.p.a.m.LearnerState$2]:LearnerState: learner-[learn]->learner from:cluster://192.168.0.3:5001 instance:5 对话 ID:3/17# 2014-01-23 02:08:45.178+0000 调试 [o.n.c.p.a.m.AtomicBroadcastState$3]:AtomicBroadcastState: 广播-[broadcastResponse]->广播对话-id:3/17#

neo4j-企业消息.log

尝试切换到从站时出错 org.neo4j.kernel.impl.nioneo.store.MismatchingStoreIdException: Expected:StoreId[time:1390358266388, id:-379881635520884869, store version: 13843131341501958], encountered:StoreId[time:1390358433121, id:-6272142992212225740, store version: 13843131341501958 ] 在 org.neo4j.com.Client.assertCorrectStoreId(Client.java:302) ~[neo4j-com-2.0.0.jar:2.0.0] 在 org.neo4j.com.Client.sendRequest(Client.java:241) ~[neo4j-com-2.0.0.jar:2.0.0] 在 org.neo4j.kernel.ha.MasterClient20.getMasterIdForCommittedTx(MasterClient20.java:359) ~[neo4j-ha-2.0.0.jar:2.0.0] 在 org.neo4j.kernel.ha.cluster.HighAvailabilityModeSwitcher.checkDataConsistencyWithMaster(HighAvailabilityModeSwitcher.java:679) ~[neo4j-ha-2.0.0.jar:2.0.0] 在 org.neo4j.kernel.ha.cluster.HighAvailabilityModeSwitcher.checkDataConsistency(HighAvailabilityModeSwitcher.java:498) ~[neo4j-ha-2.0.0.jar:2.0.0] 在 org.neo4j.kernel.ha.cluster.HighAvailabilityModeSwitcher.access 900 美元(HighAvailabilityModeSwitcher.java:110)~[neo4j-ha-2.0.0.jar:2.0.0] 在 org.neo4j.kernel.ha.cluster.HighAvailabilityModeSwitcher$2.run(HighAvailabilityModeSwitcher.java:393) ~[neo4j-ha-2.0.0.jar:2.0.0] 在 java.util.concurrent.Executors$RunnableAdapter.call(未知来源)[na:1.7.0_51] 在 java.util.concurrent.FutureTask.run(未知来源)[na:1.7.0_51] 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(未知来源)[na:1.7.0_51] 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(未知来源)[na:1.7.0_51] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)[na:1.7.0_51] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源)[na:1.7.0_51] 在 java.lang.Thread.run(未知来源)[na:1.7.0_51] 2014-01-23 02:37:10.968+0000 调试 [o.n.k.h.c.HighAvailabilityModeSwitcher]:尝试在 300 秒内切换到从站

我们在 neo4j-enterprise console.log 中也有这个

2014-01-23 02:22:10.759+0000 INFO [Cluster] ServerId 1,移动到从属主机 ha://192.168.0.3:6001?serverId=3 2014-01-23 02:22:10.777+0000 INFO [Cluster] 检查存储与 master 的一致性 2014-01-23 02:22:10.830+0000 INFO [Cluster] 存储不代表与 master 相同的数据库。将从 master 移除并获取一个新的 2014-01-23 02:27:10.839+0000 INFO [Cluster] ServerId 1,移动到从属主机 ha://192.168.0.3:6001?serverId=3 2014-01-23 02:27:10.850+0000 INFO [Cluster] 检查存储与 master 的一致性 2014-01-23 02:27:10.873+0000 INFO [Cluster] store 不代表与 master 相同的数据库。将从 master 移除并获取一个新的 2014-01-23 02:32:10.888+0000 INFO [Cluster] ServerId 1,移动到从属主机 ha://192.168.0.3:6001?serverId=3 2014-01-23 02:32:10.896+0000 INFO [Cluster] 检查存储与 master 的一致性 2014-01-23 02:32:10.916+0000 INFO [Cluster] store 不代表与 master 相同的数据库。将从 master 移除并获取一个新的 2014-01-23 02:37:10.926+0000 INFO [Cluster] ServerId 1,移动到主服务器 ha://192.168.0.3:6001?serverId=3 2014-01-23 02:37:10.935+0000 INFO [Cluster] 检查存储与 master 的一致性 2014-01-23 02:37:10.958+0000 INFO [Cluster] store 不代表与 master 相同的数据库。将从 master 移除并获取一个新的

反复尝试从主数据库获取新数据库

有没有人知道为什么服务器因为缺少更好的条件而“挂起”?

【问题讨论】:

    标签: neo4j graph-databases


    【解决方案1】:

    我假设无法启动的实例就是您所说的neo4j-service。此外,我假设嵌入式实例包含您的图形数据库的实际数据。

    在这种情况下,在neo4j-service(又名服务器实例)上停止 neo4j,删除$NEO4J_HOME/data/graph.db 并重新启动它。然后它应该从嵌入式实例(我假设它是主实例)同步 graph.db 的内容。

    【讨论】:

    • 我在发布问题后最终这样做了。这确实解决了它。
    猜你喜欢
    • 2020-08-17
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多