2016-03-22 12 views
0

私はerlangとmnesiaを学んでいます。私は疑問を持っています:「クラッシュした」エルネン・メネシア・ノードを再クラスタリングする方法?クラッシュしたerlang mnesiaノードを再びクラスタに再接続するにはどうすればいいですか?

のErlang/OTP 17 [ERTS-6.2]私が何をしたか

  1. 二mnesiaノード:M11 @ deb83-11とM12 @ deb83-12。彼らは によく接続されていました。

    ([email protected])4> mnesia:system_info(running_db_nodes). 
    ['[email protected]','[email protected]'] 
    
  2. それからmnesiaを停止せずにM12する@ "CTL-G" によってdeb83-12と "Q" のERLシェルをteminated。

  3. その後、同じ コマンドラインのm12 @ deb83-12ノード用のerlシェルを再起動しました。

  4. 再起動したノードm12 @ deb83-12が m11 @ deb83-11に接続していないことが見つかりました。

    ([email protected])16> mnesia:system_info(running_db_nodes). 
    ['[email protected]'] 
    

注1.私は、ステップ#2にmnesia停止した場合には、M12の@のdeb83-12が正常にステップ#3)

注2.私がやった後にM11する@ deb83-11に再接続しますテーブルを作成しないでください。このクラスタには空のスキーマしかありません。

ありがとうございます!

+0

'mnesia:stop()。'と 'mnesia:start()を使ってmnesiaを再起動するだけで、他のノードに接続するだけです。 '。私は自分でそれをチェックしていない答えとして置いていない。 – Amiramix

+0

こんにちはAmiramix、ありがとうございます。それは役に立ちます。私はm11 @ deb83-11からnet_adm:ping( 'm12 @ deb83-12')を発行してこれらの2つのノードを最初に接続しようとしました。その後、mnesiaも接続されています。ありがとう:) –

+0

np、私はうまく働いてうれしい:)私は答えとしてそれを入れて、他の誰かが同じ問題を抱えている場合に入れます。 – Amiramix

答えて

0

どうやらあなたがする必要があるすべては(nodes().は、他のノードを返すように)他のノードに接続し、mnesia:stop().mnesia:start().でmnesia再起動です。

関連する問題