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アドレスを使用する多くの組み合わせを試しましたが、常に同じ問題が発生します。ホスト名が解決されています。ホスト名-1にpingを実行しましたが、正常に動作します。
何がこの問題を引き起こしているのかについて誰かが何か考えを持っていますか?
残念ながら、Mongoのドキュメントには、実際のシナリオでレプリカセットを設定する例はなく、同じマシン上で3つのインスタンスを使用するだけで、明らかに役に立たない。
助けてくれてありがとう!
構成でこれを削除します。
bind_ip = 127.0.0.1
このオプションは現在、mongodbレプリカセットと互換性がありません。
このエラーは、(まだ)「稼働中」ではないノードを追加しているときに発生します。 「hostname-1」に到達できない(/ etc/hostsにない、DNSがない)か、到達可能であるがreplSet
構成パラメーターが設定されたmongodbを実行していないようです。
{ "errmsg": "例外:再構成するにはほとんどのメンバーが必要ですが、問題ありません:server2:27017"、 "code":13144、 " ok ":0 }
Mongo2.4.9で上記のエラーが発生しました。ここでの私の間違いは、新しいレプリカメンバーのmongo構成でreplSet
を指定しなかったことです。 rs.add("server2:27017")
はその後うまく機能しました。
私が持っていた同様の問題、解決策はキーファイルを持つことでした。 http://docs.mongodb.org/manual/tutorial/deploy-replica-set-with-auth/#create-the-key-file-to-be-used-by-each-member-of -レプリカセット
2番目のノードをノード1に追加する前に、mongodbが2番目のノードで実行されていることを確認する必要がある場合があります。rs.add()を実行している場合は、rs.status()を確認します。