2010-09-13 27 views
36

J'ai un mauvais noeud (il n'existe pas) dans les données du cluster de mnesia quand je reçois:Retirez le noeud not_exist_already du cluster mnesia (schéma)

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

Comment puis-je le supprimer du cluster?

J'ai essayé:

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

Qu'est-ce que cela signifie? Comment puis-je le réparer?

Mise à jour. Avant de supprimer le noeud du schéma, nous devons arrêter la Mnesia

+1

Généralement, IIRC, s'il y a un nœud qui est en panne ou non actif, Mnesia ne se souciera pas de faire n'importe quel type de connexion ou de synchronisation jusqu'à ce qu'il revienne. S'il y a une raison pour laquelle vous devez le retirer du cluster au lieu de l'ignorer? Si vous devez l'enlever, pourriez-vous clarifier pourquoi? – Olives

+0

J'ai prévu des noms de nœuds courts pour chnage, et je pense que ces mauvais nœuds seront des problèmes. Ai-je tort? – vinnitu

+0

Je ne suis pas sûr à 100%, mais je ne pense pas que ce soit un problème. Je crois que Mnesia va vérifier pour voir si le mauvais nœud est en place, il ne sera pas capable de s'y connecter, donc il l'ignorera. Donc ce serait mon conseil. Cependant, si j'ai tort (ce qui peut être le cas), nous pouvons essayer de le comprendre. – Olives

Répondre

1

J'ai eu un problème similaire il y a des années. Qu'est-ce que vous essayez de faire est de supprimer un noeud hors ligne, qui, autant que je sache, était impossible dans les versions antérieures de Mnesia.

Vous pouvez toutefois vous connecter au cluster à l'aide d'un noeud factice nommé [email protected] et démarrer avec un system.config modifié du nœud en cluster d'origine. Une fois son en ligne retirer du cluster.