【问题标题】:How to reconnect a crashed erlang mnesia node to cluster again?如何将崩溃的 erlang mnesia 节点重新连接到集群?
【发布时间】:2016-07-09 11:55:22
【问题描述】:

我正在学习 erlang 和 mnesia。我有一个问题:如何将“崩溃”的 erlang mnesia 节点重新连接到集群?

Erlang/OTP 17 [erts-6.2]

我做了什么:

  1. 两个 mnesia 节点:m11@deb83-11 和 m12@deb83-12。他们是相连的 彼此相处得很好。

    (m11@deb83-11)4> mnesia:system_info(running_db_nodes)。
    ['m12@deb83-12','m11@deb83-11']
    
  2. 然后我用 "Ctl-G" 和 "q" 终止了 m12@deb83-12 的 erl shell 没有停止记忆。

  3. 之后,我重新启动了 m12@deb83-12 节点的 erl shell 命令行。

  4. 我发现重启的节点 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,我很高兴它成功了 :) 我会把它作为答案,以防其他人遇到同样的问题。

标签: erlang mnesia


【解决方案1】:

显然你需要做的就是连接到另一个节点(以便nodes().返回另一个节点)并使用mnesia:stop().mnesia:start().重新启动mnesia。

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 2010-10-21
    • 1970-01-01
    • 2013-04-16
    • 2019-07-09
    • 2021-09-15
    • 2013-11-29
    • 2018-03-31
    • 2021-12-09
    相关资源
    最近更新 更多