Bemærk :Sørg for at tjekke svaret leveret af arcseldon for en brugervenlig ækvivalent.
Du kan bruge output af rs.status()
. Hvis sekundær er synkroniseret og ikke blev oprettet med slaveDelay
mulighed og derefter optime
og optimeDate
sekundær skal være lig med eller tæt på (hvis der er aktuelle operationer) med primære. I så fald stateStr
skal være lig med SECONDARY
. Så hvis sekundær er synkroniseret, bør du se output, der ligner dette (et medlem er blevet fjernet fra output for klarhedens skyld):
{
"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
}
Her har du output af rs.status()
for det samme replikasæt, hvis en af sekundærerne ikke er synkroniseret. Først og fremmest vil du se den optime
og optimeDate
for hostname:27003
adskiller sig fra primær, stateStr er sat til RECOVERING
og der er passende 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
}
Hvis sekundær er blevet oprettet med slaveDelay
derefter optime
og optimeDate
kan være anderledes, men stateStr
og lastHeartbeatMessage
vil indikere, om der er noget forsinkelse.