【问题标题】:Remove not_exist_already node from mnesia cluster(scheme)从 mnesia 集群中移除 not_exist_already 节点(方案)
【发布时间】:2011-04-11 18:13:53
【问题描述】:

当我得到时,我在 mnesia 集群数据中有一个坏节点(它不存在):

> mnesia:system_info(db_nodes)
[bad@node, ...]

如何将其从集群中移除?

我试过了:

> mnesia:del_table_copy(scheme, bad@node).
{aborted,{not_active,"All replicas on diskfull nodes are not active yet"...

这是什么意思?我该如何解决?

更新。在从模式中删除节点之前,我们需要停止 mnesia

【问题讨论】:

  • 一般来说,IIRC,如果有一个节点关闭或不活动,Mnesia 不会费心进行任何类型的连接或同步,直到它恢复。如果有任何理由必须将其从集群中删除而不是忽略它?如果您需要删除它,您能否说明原因?
  • 我计划将短节点名称更改为长节点,我担心这个坏节点会很麻烦。我错了吗?
  • 我对此不是 100% 确定,但我认为这不会是一个问题。我相信mnesia会检查坏节点是否启动,它无法连接到它,所以它会忽略它。所以这将是我的建议。但是,如果我错了(可能是这种情况),我们可以尝试弄清楚。
  • 我对这个问题的受欢迎程度感到惊讶。

标签: erlang mnesia


【解决方案1】:

几年前我也遇到过类似的问题。您要做的是删除一个离线节点,据我所知,这在早期版本的 mnesia 中是不可能的。

但是,您可以使用名为 bad@node 的虚拟节点连接到集群,并从原始集群节点的调整后的 system.config 开始。一旦从集群中在线删除。

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 2014-09-10
    • 1970-01-01
    • 2010-10-21
    • 2010-10-17
    • 2018-07-19
    • 2019-03-05
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多