Mongoバージョン3.0.8の3つのメンバーレプリカセットがあります。 AWS-EC2上のLinuxインスタンス上で実行されています。Mongodbレプリカセット - 常に "syncingTo"を表示
mongo --host MongoA:27017,MongoB:27017,MongoC:27017
:私はこのコマンドを使用して、別々の(テスト)サーバ(Mongoのインスタンスのないもの)からのコマンドラインを介してモンゴに接続
rs.status()
{
"set" : "s-1",
"date" : ISODate("2016-05-04T20:52:26.279Z"),
"myState" : 2,
"syncingTo" : "MongoA:27017",
"members" : [
{
"_id" : 0,
"name" : "MongoB:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 14809,
"optime" : Timestamp(1462382654, 1),
"optimeDate" : ISODate("2016-05-04T17:24:14Z"),
"lastHeartbeat" : ISODate("2016-05-04T20:52:25.620Z"),
"lastHeartbeatRecv" : ISODate("2016-05-04T20:52:25.635Z" ),
"pingMs" : 0,
"syncingTo" : "MongoC:27017",
"configVersion" : 1
},
{
"_id" : 1,
"name" : "MongoA:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 14852,
"optime" : Timestamp(1462382654, 1),
"optimeDate" : ISODate("2016-05-04T17:24:14Z"),
"lastHeartbeat" : ISODate("2016-05-04T20:52:24.506Z"),
"lastHeartbeatRecv" : ISODate("2016-05-04T20:52:24.493Z" ),
"pingMs" : 9,
"electionTime" : Timestamp(1462380294, 1),
"electionDate" : ISODate("2016-05-04T16:44:54Z"),
"configVersion" : 1
},
{
"_id" : 2,
"name" : "MongoC:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 89095,
"optime" : Timestamp(1462382654, 1),
"optimeDate" : ISODate("2016-05-04T17:24:14Z"),
"syncingTo" : "MongoA:27017",
"configVersion" : 1,
"self" : true
}
],
"ok" : 1
}
:ここrs.status()が出力されますレプリカセットのすべてのメンバーがセキュリティグループのメンバーであり、そのポート27017がすべてのレプリカセットメンバーと私のテストサーバーに公開されるようにAWSセキュリティグループを設定しました。
私はコマンドラインで接続するたびに、常にプライマリサーバに接続します(決してプライマリサーバではありません)。私が読んだところでは、これはレプリカセットがまだ「同期している」という事実に関連しています。
なぜ私は常に同期状態にあるのですか?設定されたメンバーが(特定のポートや何かへのアクセスなど)同期できないような何かがありますか?
ありがとうございました。ありがとうございました。
優れた説明をいただきありがとうございます。私はいつも(replSetなしで)同じ接続文字列を使用していたので、PRIMARYに接続するのは幸いです。 –