Definition
replSetGetStatusThe
replSetGetStatuscommand returns the status of the replica set from the point of view of the server that processed the command.replSetGetStatusmust be run against the admin database.The
mongodinstance must be a replica set member forreplSetGetStatusto return successfully.Data provided by this command derives from data included in heartbeats sent to the server by other members of the replica set. Because of the frequency of heartbeats, these data can be several seconds out of date.
Tip
In the
mongoShell, this command can also be run through thers.status()helper method.Helper methods are convenient for
mongousers, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.
Syntax
The command has the following syntax:
db.adminCommand( { replSetGetStatus: 1 } )
- Starting in MongoDB 4.2.1
If you run
replSetGetStatusor themongoshell helperrs.status()on a member during its initial sync (i.e.STARTUP2state), the command returnsreplSetGetStatus.initialSyncStatusmetrics.Once the member finishes its initial sync and transitions to another state, the
replSetGetStatus.initialSyncStatusmetrics are no longer available.
- In earlier versions (3.4.x-4.2.0)
To return initial sync status information, include
initialSync: 1in the command on a secondary member or a member inSTARTUP2state:db.adminCommand( { replSetGetStatus: 1, initialSync: 1 } ) The
replSetGetStatus.initialSyncStatusmetrics remains available after the member completes its initial sync. That is, you can run thereplSetGetStatuscommand with theinitialSync: 1on the secondary member to return its initial sync information.You cannot specify
initialSync: 1in themongoshell helperrs.status().
Example
The following example runs the replSetGetStatus
command on the admin database of the replica set
primary:
db.adminCommand( { replSetGetStatus : 1 } )
The command returns the following output for an example replica set primary:
{ "set" : "replset", "date" : ISODate("2020-03-05T05:24:45.567Z"), "myState" : 1, "term" : NumberLong(3), "syncSourceHost" : "", "syncSourceId" : -1, "heartbeatIntervalMillis" : NumberLong(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 3, // Available starting in v4.4 "writableVotingMembersCount" : 3, // Available starting in v4.4 "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1583385878, 1), "t" : NumberLong(3) }, "lastCommittedWallTime" : ISODate("2020-03-05T05:24:38.122Z"), "readConcernMajorityOpTime" : { "ts" : Timestamp(1583385878, 1), "t" : NumberLong(3) }, "readConcernMajorityWallTime" : ISODate("2020-03-05T05:24:38.122Z"), "appliedOpTime" : { "ts" : Timestamp(1583385878, 1), "t" : NumberLong(3) }, "durableOpTime" : { "ts" : Timestamp(1583385878, 1), "t" : NumberLong(3) }, "lastAppliedWallTime" : ISODate("2020-03-05T05:24:38.122Z"), "lastDurableWallTime" : ISODate("2020-03-05T05:24:38.122Z") }, "lastStableRecoveryTimestamp" : Timestamp(1583385868, 2), "electionCandidateMetrics" : { "lastElectionReason" : "stepUpRequestSkipDryRun", "lastElectionDate" : ISODate("2020-03-05T05:24:28.061Z"), "electionTerm" : NumberLong(3), "lastCommittedOpTimeAtElection" : { "ts" : Timestamp(1583385864, 1), "t" : NumberLong(2) }, "lastSeenOpTimeAtElection" : { "ts" : Timestamp(1583385864, 1), "t" : NumberLong(2) }, "numVotesNeeded" : 2, "priorityAtElection" : 1, "electionTimeoutMillis" : NumberLong(10000), "priorPrimaryMemberId" : 1, "numCatchUpOps" : NumberLong(0), "newTermStartDate" : ISODate("2020-03-05T05:24:28.118Z"), "wMajorityWriteAvailabilityDate" : ISODate("2020-03-05T05:24:28.228Z") }, "electionParticipantMetrics" : { "votedForCandidate" : true, "electionTerm" : NumberLong(2), "lastVoteDate" : ISODate("2020-03-05T05:22:33.306Z"), "electionCandidateMemberId" : 1, "voteReason" : "", "lastAppliedOpTimeAtElection" : { "ts" : Timestamp(1583385748, 1), "t" : NumberLong(1) }, "maxAppliedOpTimeInSet" : { "ts" : Timestamp(1583385748, 1), "t" : NumberLong(1) }, "priorityAtElection" : 1 }, "members" : [ { "_id" : 0, "name" : "m1.example.net:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 269, "optime" : { "ts" : Timestamp(1583385878, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2020-03-05T05:24:38Z"), "lastAppliedWallTime": ISODate("2020-03-05T05:24:38Z"), "lastDurableWallTime": ISODate("2020-03-05T05:24:38Z"), "syncSourceHost" : "", "syncSourceId" : -1, "infoMessage" : "", "electionTime" : Timestamp(1583385868, 1), "electionDate" : ISODate("2020-03-05T05:24:28Z"), "configVersion" : 1, "configTerm" : 0, "self" : true, "lastHeartbeatMessage" : "" }, { "_id" : 1, "name" : "m2.example.net:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 266, "optime" : { "ts" : Timestamp(1583385878, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1583385878, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2020-03-05T05:24:38Z"), "optimeDurableDate" : ISODate("2020-03-05T05:24:38Z"), "lastAppliedWallTime": ISODate("2020-03-05T05:24:38Z"), "lastDurableWallTime": ISODate("2020-03-05T05:24:38Z"), "lastHeartbeat" : ISODate("2020-03-05T05:24:44.114Z"), "lastHeartbeatRecv" : ISODate("2020-03-05T05:24:43.999Z"), "pingMs" : NumberLong(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "m3.example.net:27017", "syncSourceId" : 2, "infoMessage" : "", "configVersion" : 1 }, { "_id" : 2, "name" : "m3.example.net:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 266, "optime" : { "ts" : Timestamp(1583385878, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1583385878, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2020-03-05T05:24:38Z"), "optimeDurableDate" : ISODate("2020-03-05T05:24:38Z"), "lastAppliedWallTime": ISODate("2020-03-05T05:24:38Z"), "lastDurableWallTime": ISODate("2020-03-05T05:24:38Z"), "lastHeartbeat" : ISODate("2020-03-05T05:24:44.114Z"), "lastHeartbeatRecv" : ISODate("2020-03-05T05:24:43.998Z"), "pingMs" : NumberLong(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "infoMessage" : "", "configVersion" : 1 } ], "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1583385878, 1), "signature" : { "hash" : BinData(0,"9C2qcGVkipEGJW3iF90qxb/gIwc="), "keyId" : NumberLong("6800589497806356482") } }, "operationTime" : Timestamp(1583385878, 1) }
The following example runs the replSetGetStatus
command on the admin database of the replica set
secondary.
db.adminCommand( { replSetGetStatus : 1 } )
The command returns the following output for an example replica set secondary:
{ "set" : "replset", "date" : ISODate("2020-03-05T05:27:06.939Z"), "myState" : 2, "term" : NumberLong(3), "syncSourceHost" : "m3.example.net:27017", "syncSourceId" : 2, "heartbeatIntervalMillis" : NumberLong(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 3, // Available starting in v4.4 "writableVotingMembersCount" : 3, // Available starting in v4.4 "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1583386018, 1), "t" : NumberLong(3) }, "lastCommittedWallTime" : ISODate("2020-03-05T05:26:58.175Z"), "readConcernMajorityOpTime" : { "ts" : Timestamp(1583386018, 1), "t" : NumberLong(3) }, "readConcernMajorityWallTime" : ISODate("2020-03-05T05:26:58.175Z"), "appliedOpTime" : { "ts" : Timestamp(1583386018, 1), "t" : NumberLong(3) }, "durableOpTime" : { "ts" : Timestamp(1583386018, 1), "t" : NumberLong(3) }, "lastAppliedWallTime" : ISODate("2020-03-05T05:26:58.175Z"), "lastDurableWallTime" : ISODate("2020-03-05T05:26:58.175Z") }, "lastStableRecoveryTimestamp" : Timestamp(1583385988, 1), "electionParticipantMetrics" : { "votedForCandidate" : true, "electionTerm" : NumberLong(3), "lastVoteDate" : ISODate("2020-03-05T05:24:28.076Z"), "electionCandidateMemberId" : 0, "voteReason" : "", "lastAppliedOpTimeAtElection" : { "ts" : Timestamp(1583385864, 1), "t" : NumberLong(2) }, "maxAppliedOpTimeInSet" : { "ts" : Timestamp(1583385864, 1), "t" : NumberLong(2) }, "priorityAtElection" : 1, "newTermStartDate" : ISODate("2020-03-05T05:24:28.118Z"), "newTermAppliedDate" : ISODate("2020-03-05T05:24:29.739Z") }, "members" : [ { "_id" : 0, "name" : "m1.example.net:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 407, "optime" : { "ts" : Timestamp(1583386018, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1583386018, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2020-03-05T05:26:58Z"), "optimeDurableDate" : ISODate("2020-03-05T05:26:58Z"), "lastAppliedWallTime": ISODate("2020-03-05T05:26:58Z"), "lastDurableWallTime": ISODate("2020-03-05T05:26:58Z"), "lastHeartbeat" : ISODate("2020-03-05T05:27:06.165Z"), "lastHeartbeatRecv" : ISODate("2020-03-05T05:27:06.329Z"), "pingMs" : NumberLong(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "", "syncSourceId" : -1, "infoMessage" : "", "electionTime" : Timestamp(1583385868, 1), "electionDate" : ISODate("2020-03-05T05:24:28Z"), "configVersion" : 1 }, { "_id" : 1, "name" : "m2.example.net:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 409, "optime" : { "ts" : Timestamp(1583386018, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2020-03-05T05:26:58Z"), "lastAppliedWallTime": ISODate("2020-03-05T05:26:58Z"), "lastDurableWallTime": ISODate("2020-03-05T05:26:58Z"), "syncSourceHost" : "m3.example.net:27017", "syncSourceId" : 2, "infoMessage" : "", "configVersion" : 1, "configTerm" : 0, "self" : true, "lastHeartbeatMessage" : "" }, { "_id" : 2, "name" : "m3.example.net:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 407, "optime" : { "ts" : Timestamp(1583386018, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1583386018, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2020-03-05T05:26:58Z"), "optimeDurableDate" : ISODate("2020-03-05T05:26:58Z"), "lastAppliedWallTime": ISODate("2020-03-05T05:26:58Z"), "lastDurableWallTime": ISODate("2020-03-05T05:26:58Z"), "lastHeartbeat" : ISODate("2020-03-05T05:27:06.165Z"), "lastHeartbeatRecv" : ISODate("2020-03-05T05:27:06.165Z"), "pingMs" : NumberLong(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "infoMessage" : "", "configVersion" : 1 } ], "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1583386018, 1), "signature" : { "hash" : BinData(0,"kmhE5YARZlzn/DX4B/D0E5P6okY="), "keyId" : NumberLong("6800589497806356482") } }, "operationTime" : Timestamp(1583386018, 1) }
- In earlier versions (3.4.x-4.2.0)
You can include the optional
initialSync: 1to include thereplSetGetStatus.initialSyncStatusin the output (you can omit if you do not want to return the initial sync status):db.adminCommand( { replSetGetStatus : 1, initialSync: 1} )
- Starting in MongoDB 4.2.1,
If you run
replSetGetStatuson a member during its initial sync, the command returnsreplSetGetStatus.initialSyncStatusmetrics.db.adminCommand( { replSetGetStatus : 1} ) Once the member finishes its initial sync and transitions to another state,the
replSetGetStatus.initialSyncStatusmetrics is no longer available.- In earlier versions (3.4.x-4.2.0)
You can include the optional
initialSync: 1to include thereplSetGetStatus.initialSyncStatusin the output (you can omit if you do not want to return the initial sync status):db.adminCommand( { replSetGetStatus : 1, initialSync: 1} ) For 3.4.x-4.2.0 replica sets,
replSetGetStatus.initialSyncStatusmetrics remains available after the member completes its initial sync. That is, you can run thereplSetGetStatuscommand with theinitialSync: 1on the secondary member to return its initial sync information.
The following example runs the replSetGetStatus
command on the admin database of the 4.4 replica
set member during its initial sync:
{ "set" : "replset", "date" : ISODate("2020-03-05T18:04:24.274Z"), "myState" : 5, "term" : NumberLong(1), "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "heartbeatIntervalMillis" : NumberLong(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 2, // Available starting in v4.4 "writableVotingMembersCount" : 2, // Available starting in v4.4 "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "lastCommittedWallTime" : ISODate("1970-01-01T00:00:00Z"), "appliedOpTime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "durableOpTime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "lastAppliedWallTime" : ISODate("1970-01-01T00:00:00Z"), "lastDurableWallTime" : ISODate("1970-01-01T00:00:00Z") }, "lastStableRecoveryTimestamp" : Timestamp(0, 0), "initialSyncStatus" : { "failedInitialSyncAttempts" : 0, "maxFailedInitialSyncAttempts" : 10, "initialSyncStart" : ISODate("2020-03-05T18:03:33.248Z"), "initialSyncAttempts" : [ ], "appliedOps" : 0, "initialSyncOplogStart" : Timestamp(1583431411, 1), "syncSourceUnreachableSince" : ISODate("2020-03-05T18:04:15.587Z"), // Available starting in v4.4 "currentOutageDurationMillis" : NumberLong(8687), // Available starting in v4.4 "totalTimeUnreachableMillis" : NumberLong(8687), // Available starting in v4.4 "databases" : { "databasesCloned" : 3, "admin" : { "collections" : 4, "clonedCollections" : 4, "start" : ISODate("2020-03-05T18:03:33.490Z"), "end" : ISODate("2020-03-05T18:03:33.919Z"), "elapsedMillis" : 429, "admin.system.roles" : { "documentsToCopy" : 22, "documentsCopied" : 22, "indexes" : 2, "fetchedBatches" : 1, "start" : ISODate("2020-03-05T18:03:33.490Z"), "end" : ISODate("2020-03-05T18:03:33.628Z"), "elapsedMillis" : 138, "receivedBatches" : 1 }, "admin.system.users" : { "documentsToCopy" : 32, "documentsCopied" : 32, "indexes" : 2, "fetchedBatches" : 1, "start" : ISODate("2020-03-05T18:03:33.628Z"), "end" : ISODate("2020-03-05T18:03:33.777Z"), "elapsedMillis" : 149, "receivedBatches" : 1 }, "admin.system.keys" : { "documentsToCopy" : 2, "documentsCopied" : 2, "indexes" : 1, "fetchedBatches" : 1, "start" : ISODate("2020-03-05T18:03:33.777Z"), "end" : ISODate("2020-03-05T18:03:33.853Z"), "elapsedMillis" : 76, "receivedBatches" : 1 }, "admin.system.version" : { "documentsToCopy" : 2, "documentsCopied" : 2, "indexes" : 1, "fetchedBatches" : 1, "start" : ISODate("2020-03-05T18:03:33.853Z"), "end" : ISODate("2020-03-05T18:03:33.919Z"), "elapsedMillis" : 66, "receivedBatches" : 1 } }, "config" : { "collections" : 2, "clonedCollections" : 2, "start" : ISODate("2020-03-05T18:03:33.929Z"), "end" : ISODate("2020-03-05T18:03:34.127Z"), "elapsedMillis" : 198, "config.transactions" : { "documentsToCopy" : 0, "documentsCopied" : 0, "indexes" : 1, "fetchedBatches" : 0, "start" : ISODate("2020-03-05T18:03:33.929Z"), "end" : ISODate("2020-03-05T18:03:34.003Z"), "elapsedMillis" : 74, "receivedBatches" : 0 }, "config.system.sessions" : { "documentsToCopy" : 0, "documentsCopied" : 0, "indexes" : 2, "fetchedBatches" : 0, "start" : ISODate("2020-03-05T18:03:34.003Z"), "end" : ISODate("2020-03-05T18:03:34.127Z"), "elapsedMillis" : 124, "receivedBatches" : 0 } }, "test" : { "collections" : 1, "clonedCollections" : 1, "start" : ISODate("2020-03-05T18:03:34.127Z"), "end" : ISODate("2020-03-05T18:04:22.094Z"), "elapsedMillis" : 47967, "test.hugeindex" : { "documentsToCopy" : 25000, "documentsCopied" : 25000, "indexes" : 2, "fetchedBatches" : 21, "start" : ISODate("2020-03-05T18:03:34.127Z"), "end" : ISODate("2020-03-05T18:04:22.094Z"), "elapsedMillis" : 47967, "receivedBatches" : 21 } } } }, "members" : [ { "_id" : 0, "name" : "m1.example.net:27017", "health" : 0, "state" : 8, "stateStr" : "(not reachable/healthy)", "uptime" : 0, "optime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "optimeDurable" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"), "lastAppliedWallTime": ISODate("1970-01-01T00:00:00Z"), "lastDurableWallTime": ISODate("1970-01-01T00:00:00Z""), "lastHeartbeat" : ISODate("2020-03-05T18:04:23.827Z"), "lastHeartbeatRecv" : ISODate("2020-03-05T18:04:15.062Z"), "pingMs" : NumberLong(0), "lastHeartbeatMessage" : "Error connecting to m1.example.net:27017 (127.0.0.1:27018) :: caused by :: Connection refused", "syncSourceHost" : "", "syncSourceId" : -1, "infoMessage" : "", "configVersion" : 2 }, { "_id" : 1, "name" : "m2.example.net:27017", "health" : 1, "state" : 5, "stateStr" : "STARTUP2", "uptime" : 5297, "optime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "lastAppliedWallTime": ISODate("1970-01-01T00:00:00Z"), "lastDurableWallTime": ISODate("1970-01-01T00:00:00Z""), "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "infoMessage" : "", "configVersion" : 2, "configTerm" : 1, "self" : true, "lastHeartbeatMessage" : "" } ], "ok" : 1 }
Output
The replSetGetStatus command returns a document with the following fields:
replSetGetStatus.setThe
setvalue is the name of the replica set, configured in thereplSetNamesetting. This is the same value as_idinrs.conf().
replSetGetStatus.dateAn ISODate formatted date and time that reflects the current time according to the server that processed the replSetGetStatus command. Compare this to the values of
replSetGetStatus.members[n].lastHeartbeatto find the operational latency between this server and the other members of the replica set.
replSetGetStatus.myStateAn integer between
0and10that represents the replica state of the current member.
replSetGetStatus.termNew in version 3.2.
The election count for the replica set, as known to this replica set member. The
termis used by the distributed consensus algorithm to ensure correctness.
replSetGetStatus.syncingToRemoved in MongoDB 4.4
See
replSetGetStatus.syncSourceHostinstead.
replSetGetStatus.syncSourceHostNew in version 4.0,: 3.6.6, 3.4.16
The
syncSourceHostfield holds the hostname of the member from which this instance syncs.If this instance is a primary,
syncSourceHostis an empty string and thesyncSourceId-1.
replSetGetStatus.syncSourceIdNew in version 4.0,: 3.6.6, 3.4.16
The
syncSourceIdfield holds thereplSetGetStatus.members[n]._idof the member from which this instance syncs.If this instance is a primary,
syncSourceHostis an empty string and thesyncSourceId-1.
replSetGetStatus.heartbeatIntervalMillisNew in version 3.2.
The frequency in milliseconds of the heartbeats.
replSetGetStatus.majorityVoteCountNew in version 4.2.1.
The number that corresponds to the majority votes needed to elect a new primary in an election.
replSetGetStatus.writeMajorityCountNew in version 4.2.1.
The number of data-bearing voting members (i.e. not arbiters) needed to fulfill write concern
"majority". Writes can only be applied to data-bearing members.For the calculation of
replSetGetStatus.writeMajorityCount, see Calculating Majority for Write Concern.
replSetGetStatus.votingMembersCountNew in version 4.4.
The number of members configured with
votes: 1, including arbiters.
replSetGetStatus.writableVotingMembersCountNew in version 4.4.
The number of data-bearing members configured with
votes: 1; that is, the count does not include arbiters.
replSetGetStatus.optimesNew in version 3.4.
The
optimesfield holds a document that contains optimes used to inspect replication progress. Starting in MongoDB 4.2, theoptimesinclude the corresponding ISODate-formatted date strings for the various optimes.Each optime value is a document that contains:
ts, the Timestamp of the operation.t, thetermin which the operation was originally generated on the primary.
replSetGetStatus.optimes.lastCommittedOpTimeInformation, from the viewpoint of this member, regarding the most recent operation that has been written to a majority of replica set members.
replSetGetStatus.optimes.lastCommittedWallTimeThe ISODate-formatted date string corresponding to
lastCommittedOpTime.The
lastCommittedWallTimemay not accurately reflectlastCommittedOpTimeif all members are not on MongoDB 4.2 or greater since thelastCommittedWallTimerequires communication with other members of the deployment.New in version 4.2.
replSetGetStatus.optimes.readConcernMajorityOpTimeInformation, from the viewpoint of this member, regarding the most recent operation that can fulfill read concern
"majority"queries; i.e. the most recentlastCommittedOpTimethat can fulfill"majority"queries.readConcernMajorityOpTimeis either less than or equal tolastCommittedOpTime.
replSetGetStatus.optimes.readConcernMajorityWallTimeThe ISODate-formatted date string corresponding to
readConcernMajorityOpTime.The
readConcernMajorityWallTimemay not accurately reflectreadConcernMajorityOpTimeif all members are not on MongoDB 4.2 or greater since thereadConcernMajorityWallTimerequires communication with other members of the deployment.New in version 4.2.
replSetGetStatus.optimes.appliedOpTimeInformation, from the viewpoint of this member, regarding the most recent operation that has been applied to this member of the replica set.
replSetGetStatus.optimes.lastAppliedWallTimeThe ISODate-formatted date string corresponding to
appliedOpTime.New in version 4.2.
replSetGetStatus.optimes.durableOpTimeInformation, from the viewpoint of this member, regarding the most recent operation that has been written to the journal of this member of the replica set.
replSetGetStatus.optimes.lastDurableWallTimeThe ISODate-formatted date string corresponding to
durableOpTime.New in version 4.2.
replSetGetStatus.lastStableCheckpointTimestampDeprecated since version 4.2.
Available for the WiredTiger Storage Engine.
Timestamp at which the current, or a previous, persisted checkpoint was taken. Although
lastStableCheckpointTimestampmay lag the most recent persisted checkpoint, the returned timestamp is guaranteed to be persisted in a stable checkpoint to disk.A
nullvalue indicates that no stable checkpoint exists.New in version 4.0.
replSetGetStatus.electionCandidateMetricsNew in version 4.2.1.
Metrics related to the election of the current primary.
electionCandidateMetricsis only available on the primary or a candidate for election. For a candidate, the metrics becomes unavailable once the candidate loses the election.replSetGetStatus.electionCandidateMetrics.lastElectionReasonNew in version 4.2.1.
Reason the member called the election.
replSetGetStatus.electionCandidateMetrics.lastElectionDateNew in version 4.2.1.
The date and time the member called the election.
replSetGetStatus.electionCandidateMetrics.electionTermChanged in version 4.2.2: In v4.2.1,
electionTermwas namedelectionTerm.The member's election count (i.e.
term) at the time it called for the new election.
replSetGetStatus.electionCandidateMetrics.lastCommittedOpTimeAtElectionNew in version 4.2.1.
The most recent
majority-committed optime, as seen by this member, at the time it called for the new election.
replSetGetStatus.electionCandidateMetrics.lastSeenOpTimeAtElectionNew in version 4.2.1.
The member's most recent
applied optimeat the time it called for the new election.
replSetGetStatus.electionCandidateMetrics.numVotesNeededNew in version 4.2.1.
The number of votes needed to win the election.
replSetGetStatus.electionCandidateMetrics.priorityAtElectionNew in version 4.2.1.
The member's
priorityat the time it called the election.
replSetGetStatus.electionCandidateMetrics.electionTimeoutMillisNew in version 4.2.1.
The replica set's configured
electionTimeoutMillissetting at the time of the election.
replSetGetStatus.electionCandidateMetrics.priorPrimaryMemberIdNew in version 4.2.1.
The
members[n]._idof the previous primary. If there is no previous primary, then the field is not present.
replSetGetStatus.electionCandidateMetrics.targetCatchupOpTimeNew in version 4.2.1.
The newly-elected primary's target opTime for its catchup process. Only when the newly-elected primary reaches the target catchup opTime can it start accepting writes.
replSetGetStatus.electionCandidateMetrics.numCatchUpOpsNew in version 4.2.1.
The number of operations applied by the newly-elected primary as it successfully concludes its catchup process.
replSetGetStatus.electionCandidateMetrics.newTermStartDateNew in version 4.2.1.
The date and time at which the member's term as the primary started (i.e. the date and time at which a
new termentry was written to the oplog).
replSetGetStatus.electionCandidateMetrics.wMajorityWriteAvailabilityDateNew in version 4.2.1.
The date and time at which the write concern
"majority"became available after the election for the replica set(i.e. the date and time at which thenew termoplog entry was majority committed).
replSetGetStatus.electionParticipantMetricsMetrics related to the latest election in which the member participated.
New in version 4.2.2.
replSetGetStatus.electionParticipantMetrics.votedForCandidateA boolean which indicates whether the member voted for the candidate calling the election.
New in version 4.2.2.
replSetGetStatus.electionParticipantMetrics.electionTermThe term of the election in which the member participated. The term identifies the election associated with the participant metrics.
New in version 4.2.2.
replSetGetStatus.electionParticipantMetrics.lastVoteDateAn ISODate formatted date string that reflects when the participant voted.
New in version 4.2.2.
replSetGetStatus.electionParticipantMetrics.electionCandidateMemberIdThe
members[n]._idof the candidate calling the election.New in version 4.2.2.
replSetGetStatus.electionParticipantMetrics.voteReasonThe reason for the vote if the member did not vote for the candidate. If the member voted for the candidate, the value is an empty string.
New in version 4.2.2.
replSetGetStatus.electionParticipantMetrics.lastAppliedOpTimeAtElectionThis member's latest applied optime at the time of the election.
The optime value is a document that contains the Timestamp (
ts) and the term (t).
replSetGetStatus.electionParticipantMetrics.maxAppliedOpTimeInSetThe most recent applied optime for any member of this replica set, as known by this member.
The optime value is a document that contains the Timestamp (
ts) and the term (t).New in version 4.2.2.
replSetGetStatus.electionParticipantMetrics.priorityAtElectionThe member's
priorityat the time of the election.New in version 4.2.2.
replSetGetStatus.electionParticipantMetrics.newTermStartDateThe date and time at which the elected primary's term started; this corresponds to when the primary wrote the
new termentry to its oplog and not when the entry was added (i.e. replicated) to the secondary's oplog.The field is available for secondary members only. For the primary, see
replSetGetStatus.electionCandidateMetrics.newTermStartDateinstead.New in version 4.2.2.
replSetGetStatus.initialSyncStatusNew in version 3.4.
A document provides information on the progress and status of initial sync on this member.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.replSetGetStatus.initialSyncStatus.failedInitialSyncAttemptsNew in version 3.4.
The number of times the initial sync failed and had to restart on this member.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.maxFailedInitialSyncAttemptsNew in version 3.4.
The maximum number of times the initial sync can restart on this member before the member shuts down.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.initialSyncStartNew in version 3.4.
The start timestamp of the initial sync for this member.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.initialSyncEndNew in version 3.4.
The end timestamp of the initial sync for this member.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.initialSyncElapsedMillisNew in version 3.4.
The number of milliseconds between
initialSyncStartandinitialSyncEnd.Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.initialSyncAttemptsNew in version 3.4.
Array of documents where each document corresponds to a single initial sync attempt. For example:
"initialSyncAttempts" : [ { "durationMillis" : 59539, "status" : "InvalidOptions: error fetching oplog during initial sync :: caused by :: Error while getting the next batch in the oplog fetcher :: caused by :: readConcern afterClusterTime value must not be greater than the current clusterTime. Requested clusterTime: { ts: Timestamp(0, 1) }; current clusterTime: { ts: Timestamp(0, 0) }", "syncSource" : "m1.example.net:27017", "rollBackId" : 1, // Available starting in v4.4 "operationsRetried" : 120, // Available starting in v4.4 "totalTimeUnreachableMillis" : 52601 // Available starting in v4.4 } ], Each document contains the following information for the initial sync attempt:
FieldDescriptiondurationMillis
Duration in milliseconds of the initial sync attempt.
status
Exit status of the initial sync attempt.
syncSource
Sync source for the initial sync attempt.
rollBackId
The sync source's rollback identifier at the start of the initial sync attempt.
New in version 4.4.
operationsRetried
Total number of all operation retry attempts.
New in version 4.4.
totalTimeUnreachableMillis
Total time spent for retry operation attempts.
New in version 4.4.
See also
failedInitialSyncAttempts.Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.appliedOpsNew in version 3.4.
The number of ops that occurred after the initial sync started and were applied after cloning the databases.
As part of the initial sync process, the member uses the oplog to update its data set to reflect the current state of the replica set.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.initialSyncOplogStartNew in version 3.4.
The start timestamp of the oplog application stage of the initial sync where the member applies changes that occurred after the initial sync start.
As part of the initial sync process, the member uses the oplog to update its data set to reflect the current state of the replica set.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.initialSyncOplogEndNew in version 3.4.
The end timestamp of the oplog application stage of the initial sync where the member applies changes that occurred after the initial sync start.
As part of the initial sync process, the member uses the oplog to update its data set to reflect the current state of the replica set.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.syncSourceUnreachableSinceThe date and time at which the sync source became unreachable.
Only present if the if sync source is unavailable during the current initial sync.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.New in version 4.4.
replSetGetStatus.initialSyncStatus.currentOutageDurationMillisThe time in milliseconds that the sync source has been unavailable.
Only present if the if sync source is unavailable during the current initial sync.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.New in version 4.4.
replSetGetStatus.initialSyncStatus.totalTimeUnreachableMillisThe total time in milliseconds that the member has been unavailable during the current initial sync.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.New in version 4.4.
replSetGetStatus.initialSyncStatus.databasesNew in version 3.4.
Detail on the databases cloned during initial sync.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.databases.databasesClonedNew in version 3.4.
Number of databases cloned during initial sync.
Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.initialSyncStatus.databases.<dbname>New in version 3.4.
For each database, a document that returns information regarding the progress of the cloning of that database.
{ "collections" : <number of collections to clone in the database>, "clonedCollections" : <number of collections cloned to date>, "start" : <start date and time for the database clone>, "end" : <end date and time for the database clone>, "elapsedMillis" : <duration of the database clone>, "<db>.<collection>" : { "documentsToCopy" : <number of documents to copy>, "documentsCopied" : <number of documents copied to date>, "indexes" : <number of indexes>, "fetchedBatches" : <number of batches of documents fetched to date>, "start" : <start date and time for the collection clone>, "end" : <end date and time for the collection clone>, "elapsedMillis" : <duration of the collection clone>, "receivedBatches" : <number of batches of documents received to date> // Added in 4.2 } } Important
Availability
Starting in MongoDB 4.2.1,
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync (i.e.STARTUP2state).In earlier versions (3.4.x-4.2.0),
replSetGetStatus.initialSyncStatusmetrics are available when the command is run withinitialSync: 1option on a secondary or a member in itsSTARTUP2state, even after the member completes its initial sync. However, some fields that relate to the progress of an on-going initial sync only appear while the initial sync is in progress and do not appear once the initial sync completes.
replSetGetStatus.membersThe
membersfield holds an array that contains a document for every member in the replica set.replSetGetStatus.members[n].ipThe resolved IP address of the member. If the
mongodis unable to resolve thereplSetGetStatus.members[n].nameto an IP address, the return value is a BSON null. Otherwise, the returned value is a string representation of the resolved IP address.New in version 4.2.
replSetGetStatus.members[n].selfA boolean that indicates if the member is the current
mongodinstance.The
selffield is only included in the document for the currentmongodinstance, and as such, its value is alwaystrue.
replSetGetStatus.members[n].healthA number that indicates if the member is up (i.e.
1) or down (i.e.0).
replSetGetStatus.members[n].stateAn integer between
0and10that represents the replica state of the member.
replSetGetStatus.members[n].stateStrA string that describes
state.
replSetGetStatus.members[n].uptimeFor the member on which the
replSetGetStatuscommand is run,uptimeis the the number of seconds the member has been online.For the other members,
uptimeis the number of seconds the member has been in continuous communication with the member on which thereplSetGetStatuscommand was run.
replSetGetStatus.members[n].optimeInformation regarding the last operation from the operation log that this member has applied.
Changed in version 3.2.
optimereturns a document that contains:
replSetGetStatus.members[n].optimeDurableNew in version 3.4.
Information regarding the last operation from the operation log that this member has applied to its journal.
optimeDurablereturns a document that contains:
replSetGetStatus.members[n].optimeDateAn ISODate formatted date string that reflects the last entry from the oplog that this member applied. If this differs significantly from
lastHeartbeatthis member is either experiencing "replication lag" or there have not been any new operations since the last update. Comparemembers.optimeDatebetween all of the members of the set.
replSetGetStatus.members[n].optimeDurableDateNew in version 3.4.
An ISODate formatted date string that reflects the last entry from the oplog that this member applied to its journal.
replSetGetStatus.members[n].lastAppliedWallTimeNew in version 4.4.11.
An ISODate formatted date string reflecting the wall clock time at which the last operation applied by this member of the replica set was applied on the primary node.
replSetGetStatus.members[n].lastDurableWallTimeNew in version 4.4.11.
An ISODate formatted date string reflecting the wall clock time at which the last operation written to this member's journal was first applied on the primary node.
replSetGetStatus.members[n].electionTimeFor the current primary, information regarding the election Timestamp from the operation log. See Replica Set High Availability for more information about elections.
replSetGetStatus.members[n].electionDateFor the current primary, an ISODate formatted date string that reflects the election date. See Replica Set High Availability for more information about elections.
replSetGetStatus.members[n].lastHeartbeatAn ISODate formatted date and time that reflects the last time the server that processed the replSetGetStatus command received a response from a heartbeat that it sent to this member (
members[n]). Compare this value to the values of thedateandlastHeartbeatRecvfields to track latency between these replica set members.This value is only available for replica set members other than the server specified by
replSetGetStatus.members[n].self.
replSetGetStatus.members[n].lastHeartbeatRecvAn ISODate formatted date and time that reflects the last time the server that processed the replSetGetStatus command received a heartbeat request from this member (
members[n]). Compare this value to the values of thedateandlastHeartbeatfields to track latency between these replica set members.This value is only available for replica set members other than the server specified by
replSetGetStatus.members[n].self.
replSetGetStatus.members[n].lastHeartbeatMessageWhen the last heartbeat included an extra message, the
lastHeartbeatMessagecontains a string representation of that message.
replSetGetStatus.members[n].pingMsThe
pingMsrepresents the number of milliseconds (ms) that a round-trip packet takes to travel between the remote member and the local instance.This value does not appear for the member that returns the
rs.status()data.
replSetGetStatus.members[n].syncingToRemoved in MongoDB 4.4
See
replSetGetStatus.members[n].syncSourceHostinstead.
replSetGetStatus.members[n].syncSourceHostNew in version 4.0,: 3.6.6, 3.4.16
The
syncSourceHostfield holds the hostname of the member from which this instance syncs.If the
replSetGetStatus.members[n]is a primary,syncSourceHostis an empty string and thesyncSourceId-1.
replSetGetStatus.members[n].syncSourceIdNew in version 4.0,: 3.6.6, 3.4.16
The
syncSourceIdfield holds thereplSetGetStatus.members[n]._idvalue of thesyncSourceHost.If the
replSetGetStatus.members[n]is a primary,syncSourceHostis an empty string and thesyncSourceId-1.
replSetGetStatus.members[n].configVersionThe
configVersionvalue is thereplica set configuration version.
replSetGetStatus.tooStaleA boolean which indicates that a replica set member has fallen too far behind the primary's oplog and is stuck in the
RECOVERINGstate. This field is only included in thereplSetGetStatusoutput if its value istrue.New in version 4.4.
See also Response for details on the ok status
field, the operationTime field and the $clusterTime field.