20

MongoDb でレプリカ セットを作成しようとしています。サーバーのホスト名は次のとおりです。

ホスト名 ホスト名-1 ホスト名-2

これらのそれぞれには、関連するすべてのホスト名が /etc/hosts ファイルに詳述されています (これらはすべて、Ubuntu 10.04 64 ビットを実行しています)。

1 つのノードで rs.initiate を実行すると、すべてが正常に開始されるようです。rs.status(); の実行 ショー:

{
    "set" : "vega",
    "date" : ISODate("2012-01-22T19:15:55Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "hostname:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "optime" : {
                "t" : 1327254848000,
                "i" : 1
            },
            "optimeDate" : ISODate("2012-01-22T17:54:08Z"),
            "self" : true
        }
    ],
    "ok" : 1
}

レプリカ セットに新しいメンバーを追加しようとすると、問題が発生します。コマンド rs.add(hostname-1); を使用します。次のエラーが表示されます。

{
    "assertion" : "need most members up to reconfigure, not ok : vega-1:27017",
    "assertionCode" : 13144,
    "errmsg" : "db assertion failure",
    "ok" : 0
}

ポート番号の有無にかかわらず、ホスト名、IPアドレスを使用するさまざまな組み合わせを試しましたが、常に同じ問題が発生します。ホスト名は解決中です。ping hostname-1 を試してみましたが、正常に動作します。

この問題の原因について何か考えがある人はいますか?

残念ながら、Mongo のドキュメントには、実際のシナリオでレプリカ セットを設定する例はなく、明らかに役に立たない同じマシンで 3 つのインスタンスしか使用していません。

助けてくれてありがとう!

4

6 に答える 6

15

構成でこれを削除します。

bind_ip = 127.0.0.1

このオプションは現在、mongodb レプリカ セットと互換性がありません。

于 2012-12-03T22:13:04.877 に答える
10

このエラーは、(まだ)「稼働」していないノードを追加するときに発生します。replSet「hostname-1」に到達できない (/etc/hosts にない、DNS がない) か、到達可能であるが構成パラメータ セットで mongodb を実行していないようです。

于 2012-07-12T02:54:55.720 に答える
3
{
    "errmsg": "例外: ほとんどのメンバーを再構成する必要がありますが、大丈夫ではありません: server2:27017",
    「コード」:13144、
    「わかりました」:0
}

Mongo 2.4.9 で上記のエラーが発生しました。replSet ここでの私の間違いは、新しいレプリカ メンバーの mongo 構成で指定しなかったことです。rs.add("server2:27017")後にうまくいきました。

于 2014-01-17T10:09:35.707 に答える
0

2 番目のノードを node1 に追加する前に、mongod が 2 番目のノードで実行されていることを確認する必要がある場合があります。rs.add() を実行している場合は、rs.status() を確認します。

于 2014-03-03T15:45:28.657 に答える