从 mnesia 集群中移除 not_exist_already 节点(方案)

Posted

技术标签:

【中文标题】从 mnesia 集群中移除 not_exist_already 节点(方案)【英文标题】:Remove not_exist_already node from mnesia cluster(scheme) 【发布时间】: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会检查坏节点是否启动,它无法连接到它,所以它会忽略它。所以这将是我的建议。但是,如果我错了(可能是这种情况),我们可以尝试弄清楚。 我对这个问题的受欢迎程度感到惊讶。 见***.com/questions/819928/… 【参考方案1】:

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

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

【讨论】:

以上是关于从 mnesia 集群中移除 not_exist_already 节点(方案)的主要内容,如果未能解决你的问题,请参考以下文章

将 master 节点服务器从 k8s 集群中移除并重新加入

Kubernetes容器集群管理环境 - Node节点的移除与加入

从文本字段中移除焦点

NET问答: 如何从 event 中移除所有的 handler ?

从 fetchedResultsController fetchedObjects 中移除一个对象

如何将 mnesia 节点添加到现有集群