2010-09-13 63 views
36

我在Mnesia的集群数据坏节点(不存在)not_exist_already节点时,我得到:删除从函数mnesia集群(方案)

> mnesia:system_info(db_nodes) 
[[email protected], ...] 

如何从集群中删除吗?

我想:

> mnesia:del_table_copy(scheme, [email protected]). 
{aborted,{not_active,"All replicas on diskfull nodes are not active yet"... 

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

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

+1

一般来说,IIRC,如果有一个节点关闭或不活动,Mnesia不会打扰做任何形式的连接或同步,直到它恢复。如果有任何理由不得不将它从集群中删除而不是忽略它?如果你需要删除它,你能澄清一下为什么? – Olives 2010-09-13 22:14:46

+0

我计划chnage短节点名称长,我afaid这个坏节点会麻烦。我错了吗? – vinnitu 2010-09-14 05:26:42

+0

我不是100%肯定的,但我不认为这会是一个问题。我相信mnesia会检查是否坏节点已经启动,它将无法连接到它,所以它会忽略它。所以这将是我的建议。但是,如果我错了(可能是这种情况),我们可以尝试弄明白。 – Olives 2010-09-14 18:23:49

回答

1

在几年前我有类似的问题。你想要做的是去掉一个脱机节点,据我所知在mnesia的早期版本中是不可能的。

然而,您可以使用名为[email protected]的虚拟节点连接到群集,并使用原始群集节点的调整system.config开始。一旦它在线从群集中删除。