2016-11-09 3 views
0

mongodbシャーディングを導入しようとしています。 3台のマシンにレプリカセットを配備しました。しかし、私はまだすべての3つのノードにsh.addShard("test/mongodb1.example.net:27017")しようとすると動作させるように見えることができません。表示されるエラーは次のとおりです。MongoDBにaddShadを追加できません

2016-11-09T16:02:46.704+0800 W NETWORK [conn105] No primary detected for set team3 

別のエラー:

{ 
    "ok" : 0, 
    "errmsg" : "could not find host matching read preference { mode: \"primary\" } for set test", 
    "code" : 133 
} 

1)を設定し(これは正常に動作します)各ノードごとに設定された初期のレプリカ

a)すべての3つのノードのためにこれらを実行します。

mkdir /temp/data/team3 
./mongod --replSet "team3" --dbpath /temp/data/team3 
./mongo --host <mongodb[x].example.net> 

b)はプライマリノードの実行:

rs.initiate() 
rs.add("mongodb2.example.net") 
rs.add("mongodb3.example.net") 

2)三つのレプリカクラスタの構成サーバーとクエリルータ(これは正常に動作します)

プライマリノードの実行の設定:シャードを追加すると破片(問題を追加

mkdir /temp/data/config_rs 
./mongod --configsvr --replSet "config_rs" --dbpath /temp/data/config_rs 
./mongo --host mongodb1.example.net --port 27019 

3))

プライマリノードの実行:

sh.addShard("mongodb1.example.net") 
sh.addShard("mongodb2.example.net") 
sh.addShard("mongodb3.example.net") 
+0

あなたは破片の追加を開始する前に、さらにreplicaSetの設定およびステータスをダブルチェックしましたか? –

答えて

0

申し訳ありません後半の答えのために... Proble mongoSサービスを通じてsh.addShardコマンドを与える必要があるということです。したがって、mongoコマンドでプライマリに接続しないと、がmongosサービスに接続する必要があります。

まず、mongosをいくつかのマシン、f.exに開始する必要があります。 1つ(またはすべて)の設定サーバーが適しています。

Mongos documentation

Step by step to sharding

関連する問題