注:は、arcseldonで提供されていることを確認してください。
出力はrs.status()
です。セカンダリが同期され、slaveDelay
オプションで作成されなかった場合、セカンダリのoptime
とoptimeDate
は、プライマリのセカンダリと等しいか、または(現在の操作がある場合)閉じる必要があります。その場合、stateStr
はSECONDARY
と等しくなければなりません。二次はあなたがこのような出力が表示されるはず同期された場合(1人のメンバーは出力から明確にするため削除されました):
{
"set" : "rs0",
"date" : ISODate("2013-11-08T14:58:49Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "hostname:27001",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 155,
"optime" : Timestamp(1383915748, 1),
"optimeDate" : ISODate("2013-11-08T13:02:28Z"),
"self" : true
},
{
"_id" : 2,
"name" : "hostname:27003",
"health" : 0,
"state" : 8,
"stateStr" : "SECONDARY",
"uptime" : 0,
"optime" : Timestamp(1383915748, 1),
"optimeDate" : ISODate("2013-11-08T13:02:28Z"),
"lastHeartbeat" : ISODate("2013-11-08T14:58:48Z"),
"lastHeartbeatRecv" : ISODate("2013-11-08T14:58:42Z"),
"pingMs" : 0,
"syncingTo" : "hostname:27001"
}
],
"ok" : 1
}
をここでは、セカンダリの1が同期されていない場合、設定された同じレプリカのrs.status()
の出力を持っています。まず、optime
とoptimeDate
はhostname:27003
であり、stateStrはRECOVERING
に設定され、適切なlastHeartbeatMessage
が設定されています。
{
"set" : "rs0",
"date" : ISODate("2013-11-08T15:01:34Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "hostname:27001",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 320,
"optime" : Timestamp(1383922858, 767),
"optimeDate" : ISODate("2013-11-08T15:00:58Z"),
"self" : true
},
{
"_id" : 2,
"name" : "hostname:27003",
"health" : 1,
"state" : 3,
"stateStr" : "RECOVERING",
"uptime" : 14,
"optime" : Timestamp(1383915748, 1),
"optimeDate" : ISODate("2013-11-08T13:02:28Z"),
"lastHeartbeat" : ISODate("2013-11-08T15:01:34Z"),
"lastHeartbeatRecv" : ISODate("2013-11-08T15:01:34Z"),
"pingMs" : 0,
"lastHeartbeatMessage" : "still syncing, not yet to minValid optime 527cfc90:19c4",
"syncingTo" : "hostname:27001"
}
],
"ok" : 1
}
二は、その後slaveDelay
optime
とoptimeDate
で作成されている場合は異なる場合がありますが、いくつかの遅れがある場合stateStr
とlastHeartbeatMessage
が示されます。
ありがとうございました。「到達できない/健全な」は「二次」になるはずです – irmorteza
あなたは正しいです:) – zero323
「optime」と「optimeDate」フィールドを明確にしてくれてありがとう。 2.4から2.6へのアップグレード時には、 'syncingTo'メッセージは消えませんでしたので、問題が正しく同期しているかどうかはわかりませんでした。 –