【发布时间】:2016-07-09 11:55:22
【问题描述】:
我正在学习 erlang 和 mnesia。我有一个问题:如何将“崩溃”的 erlang mnesia 节点重新连接到集群?
Erlang/OTP 17 [erts-6.2]
我做了什么:
-
两个 mnesia 节点:m11@deb83-11 和 m12@deb83-12。他们是相连的 彼此相处得很好。
(m11@deb83-11)4> mnesia:system_info(running_db_nodes)。 ['m12@deb83-12','m11@deb83-11']
然后我用 "Ctl-G" 和 "q" 终止了 m12@deb83-12 的 erl shell 没有停止记忆。
之后,我重新启动了 m12@deb83-12 节点的 erl shell 命令行。
-
我发现重启的节点 m12@deb83-12 没有连接到 m11@deb83-11.
(m11@deb83-11)16> mnesia:system_info(running_db_nodes)。 ['m11@deb83-11']
注意 1. 如果我在步骤#2 中停止了 mnesia,m12@deb83-12 将在步骤#3 之后重新连接到 m11@deb83-11)
注意 2. 我没有创建任何表。此集群中只有一个空架构。
提前致谢!
明
【问题讨论】:
-
显然您需要做的就是连接到另一个节点(以便
nodes().返回另一个节点)并使用mnesia:stop().和mnesia:start().重新启动mnesia。没有作为答案我没有自己检查。 -
您好 Amiramix,感谢您的回复。这很有帮助。我尝试从 m11@deb83-11 发出 net_adm:ping('m12@deb83-12') 先连接这两个节点,然后再连接 mnesia。谢谢:)
-
np,我很高兴它成功了 :) 我会把它作为答案,以防其他人遇到同样的问题。