レプリカ モードの MongoDB がいくつかあるシナリオを検討したいと思いますが、特殊なケースでは、動作しているのは 1 つだけです。私の構成は次のようなものです。
EC2 インスタンスに MongoDB コンテナがあります。コマンドは次のとおりです。
sudo docker run \
--name mongo \
-v /home/core/mongo-files/data:/data/db \
-p 27018:27017 -d mongo:3.2.1 \
--smallfiles \
--replSet "rs0"
次に、このデータベースを使用する Nodejs によって開発された 2 つのアプリケーションがあります。次の接続文字列で接続します。
uri: 'mongodb://192.168.0.100:27018/testmongo?replicaSet=rs0'
残念ながら、私のアプリケーションの 1 つが正常に機能しますが、他のアプリケーションは機能しません。データベースに接続しようとしたときのエラーメッセージは
MongoDB 接続エラー: MongoError: 有効なレプリカセット メンバーが見つかりません
このコマンドを実行してステータスを確認したrs.slaveOk()
後、rs.status()
これを持っています
rs0:PRIMARY> rs.status()
{
"set" : "rs0",
"date" : ISODate("2016-09-19T11:50:59.947Z"),
"myState" : 1,
"term" : NumberLong(2),
"heartbeatIntervalMillis" : NumberLong(2000),
"members" : [
{
"_id" : 0,
"name" : "02aaebd39d4b:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1194663,
"optime" : {
"ts" : Timestamp(1474285564, 1),
"t" : NumberLong(2)
},
"optimeDate" : ISODate("2016-09-19T11:46:04Z"),
"electionTime" : Timestamp(1473091196, 1),
"electionDate" : ISODate("2016-09-05T15:59:56Z"),
"configVersion" : 1,
"self" : true
}
],
"ok" : 1
}
このシナリオの設定は正しいですか? 正しくない場合、どうすれば修正できますか?