नोट :उत्तर की जांच अवश्य करें। arcseldon द्वारा प्रदान किया गया उपयोगकर्ता के अनुकूल समकक्ष के लिए।
आप rs.status()
. के आउटपुट का उपयोग कर सकते हैं . अगर सेकेंडरी को सिंक किया गया है और slaveDelay
. के साथ नहीं बनाया गया है विकल्प तो optime
और optimeDate
माध्यमिक के बराबर या करीब होना चाहिए (यदि वर्तमान संचालन हैं) प्राथमिक के लिए। उस स्थिति में stateStr
SECONDARY
. के बराबर होना चाहिए . इसलिए यदि सेकेंडरी सिंक किया गया है तो आपको इसके समान आउटपुट देखना चाहिए (स्पष्टता के लिए आउटपुट से एक सदस्य को हटा दिया गया है):
{
"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
}
यहां आपके पास 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
कुछ अंतराल होने पर इंगित करेगा।