Lưu ý :Đảm bảo kiểm tra câu trả lời được cung cấp bởi arcseldon cho một tương đương thân thiện với người dùng.
Bạn có thể sử dụng đầu ra của rs.status() . Nếu phụ được đồng bộ hóa và không được tạo bằng slaveDelay rồi đến tùy chọn optime và optimeDate của thứ cấp phải bằng hoặc gần (nếu có hoạt động hiện tại) với của chính. Trong trường hợp đó stateStr phải bằng SECONDARY . Vì vậy, nếu thứ cấp được đồng bộ hóa, bạn sẽ thấy đầu ra tương tự như thế này (một thành viên đã bị xóa khỏi đầu ra cho rõ ràng):
{
"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
}
Ở đây bạn có đầu ra của rs.status() cho cùng một tập hợp bản sao nếu một trong các thư thứ hai không được đồng bộ hóa. Trước hết, bạn sẽ thấy rằng optime và optimeDate cho hostname:27003 khác với chính, stateStr được đặt thành RECOVERING và có lastHeartbeatMessage thích hợp .
{
"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
}
Nếu phụ đã được tạo bằng slaveDelay sau đó optime và optimeDate có thể khác nhau nhưng stateStr và lastHeartbeatMessage sẽ cho biết nếu có một số độ trễ.