replSetGetStatus
定义
replSetGetStatus
replSetGetStatus
命令从处理该命令的服务器的角度返回副本集的状态。replSetGetStatus
必须在admin 数据库上运行.必须将
mongod
实例配置为副本集成员,以便replSetGetStatus
能够成功返回。此命令提供的数据来自副本集中其他成员发送到服务器的心跳中包含的数据。由于心跳的频率,这些数据可能已经落后几秒钟。
提示
在
mongosh
中,此命令也可以通过rs.status()
辅助方法运行.辅助方法对
mongosh
用户很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要方便或需要额外的返回字段的情况下,请使用数据库命令。
兼容性
此命令在以下环境中托管的部署中可用
MongoDB Atlas:云中 MongoDB 部署的完全托管服务
重要
此命令不支持在 M0、M2 和 M5 集群中。有关更多信息,请参阅 不受支持的命令。
MongoDB 企业版:基于订阅的自托管 MongoDB 版本
MongoDB 社区版:源代码可用的 MongoDB,免费使用且可自托管
语法
此命令具有以下语法
db.adminCommand( { replSetGetStatus: 1 } )
如果在成员的初始同步(即处于初始同步(例如,STARTUP2
状态)期间)运行replSetGetStatus
或mongosh
辅助rs.status()
,则命令返回replSetGetStatus.initialSyncStatus
指标。
成员完成初始同步并转换为另一种状态后,将不再提供replSetGetStatus.initialSyncStatus
指标。
注意
如果您尚未初始化
您的副本集,则replSetGetStatus命令返回以下错误
MongoServerError: no replset config has been received
运行replSetInitiate
命令并重试。
示例
以下示例在副本集主节点的管理数据库上运行replSetGetStatus
命令
db.adminCommand( { replSetGetStatus: 1 } )
命令为示例副本集主节点返回以下输出
{ "set" : "replset", "date" : ISODate("2024-08-15T23:06:13.978Z"), "myState" : 1, "term" : NumberLong(3), "syncSourceHost" : "", "syncSourceId" : -1, "heartbeatIntervalMillis" : NumberLong(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 3, "writableVotingMembersCount" : 3, "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "lastCommittedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "readConcernMajorityOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "readConcernMajorityWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "appliedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "writtenOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "durableOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "lastAppliedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime" : ISODate("2024-08-15T23:06:13.978Z") }, "lastStableRecoveryTimestamp" : Timestamp(1723763173, 1), "electionCandidateMetrics" : { "lastElectionReason" : "stepUpRequestSkipDryRun", "lastElectionDate" : ISODate("2024-08-15T23:06:13.978Z"), "electionTerm" : NumberLong(3), "lastCommittedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(2) }, "lastSeenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(2) }, "lastSeenWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(1) }, "numVotesNeeded" : 2, "priorityAtElection" : 1, "electionTimeoutMillis" : NumberLong(10000), "priorPrimaryMemberId" : 1, "numCatchUpOps" : NumberLong(0), "newTermStartDate" : ISODate("2024-08-15T23:06:13.978Z"), "wMajorityWriteAvailabilityDate" : ISODate("2024-08-15T23:06:13.978Z") }, "electionParticipantMetrics" : { "votedForCandidate" : true, "electionTerm" : NumberLong(2), "lastVoteDate" : ISODate("2024-08-15T23:06:13.978Z"), "electionCandidateMemberId" : 1, "voteReason" : "", "lastAppliedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(1) }, "lastWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(1) }, "maxAppliedOpTimeInSet" : { "ts" : Timestamp(1723763173, 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(1723763173, 1), "t" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "syncSourceHost" : "", "syncSourceId" : -1, "infoMessage" : "", "electionTime" : Timestamp(1723763173, 1), "electionDate" : ISODate("2024-08-15T23:06:13.978Z"), "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(1723763173, 1), "t" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeat" : ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"), "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(1723763173, 1), "t" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeat" : ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"), "pingMs" : NumberLong(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "infoMessage" : "", "configVersion" : 1 } ], "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1723763173, 1), "signature" : { "hash" : BinData(0,"9C2qcGVkipEGJW3iF90qxb/gIwc="), "keyId" : NumberLong("6800589497806356482") } }, "operationTime" : Timestamp(1723763173, 1) }
以下示例在副本集辅助节点的管理数据库上运行replSetGetStatus
命令
db.adminCommand( { replSetGetStatus: 1 } )
命令为示例副本集辅助节点返回以下输出
{ "set" : "replset", "date" : ISODate("2024-08-15T23:06:13.978Z"), "myState" : 2, "term" : NumberLong(3), "syncSourceHost" : "m3.example.net:27017", "syncSourceId" : 2, "heartbeatIntervalMillis" : NumberLong(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 3, "writableVotingMembersCount" : 3, "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "lastCommittedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "readConcernMajorityOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "readConcernMajorityWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "appliedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "writtenOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "durableOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "lastAppliedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime" : ISODate("2024-08-15T23:06:13.978Z") }, "lastStableRecoveryTimestamp" : Timestamp(1723763173, 1), "electionParticipantMetrics" : { "votedForCandidate" : true, "electionTerm" : NumberLong(3), "lastVoteDate" : ISODate("2024-08-15T23:06:13.978Z"), "electionCandidateMemberId" : 0, "voteReason" : "", "lastAppliedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(2) }, "lastWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(1) }, "maxAppliedOpTimeInSet" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(2) }, "maxWrittenOpTimeInSet" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(1) }, "priorityAtElection" : 1, "newTermStartDate" : ISODate("2024-08-15T23:06:13.978Z"), "newTermAppliedDate" : ISODate("2024-08-15T23:06:13.978Z") }, "members" : [ { "_id" : 0, "name" : "m1.example.net:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 407, "optime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeat" : ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"), "pingMs" : NumberLong(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "", "syncSourceId" : -1, "infoMessage" : "", "electionTime" : Timestamp(1723763173, 1), "electionDate" : ISODate("2024-08-15T23:06:13.978Z"), "configVersion" : 1 }, { "_id" : 1, "name" : "m2.example.net:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 409, "optime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "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(1723763173, 1), "t" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeat" : ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"), "pingMs" : NumberLong(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "infoMessage" : "", "configVersion" : 1 } ], "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1723763173, 1), "signature" : { "hash" : BinData(0,"kmhE5YARZlzn/DX4B/D0E5P6okY="), "keyId" : NumberLong("6800589497806356482") } }, "operationTime" : Timestamp(1723763173, 1), }
- 在早期版本(3.6.x-4.2.0)中
您可以在输出中包含可选的
initialSync: 1
以包含replSetGetStatus.initialSyncStatus
(如果不想返回初始同步状态,则可以省略)db.adminCommand( { replSetGetStatus: 1, initialSync: 1 } )
- 从MongoDB 5.2开始,
- 文档
replSetGetStatus.initialSyncStatus
包含在使用基于文件复制的初始同步时额外的字段字段。
在成员的初始同步期间运行 replSetGetStatus
命令时,该命令返回 replSetGetStatus.initialSyncStatus
指标。
db.adminCommand( { replSetGetStatus: 1 } )
成员完成初始同步并转换为另一种状态后,将不再提供replSetGetStatus.initialSyncStatus
指标。
以下示例在4.4副本集成员的初始同步期间在管理员数据库上运行了 replSetGetStatus
命令
{ "set" : "replset", "date" : ISODate("2024-08-15T23:06:13.978Z") "myState" : 5, "term" : NumberLong(1), "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "heartbeatIntervalMillis" : NumberLong(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 2, "writableVotingMembersCount" : 2, "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "lastCommittedWallTime" : ISODate("1970-01-01T00:00:00Z"), "appliedOpTime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "writtenOpTime": { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "durableOpTime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "lastAppliedWallTime" : ISODate("1970-01-01T00:00:00Z"), "lastWrittenWallTime": ISODate("1970-01-01T00:00:00Z"), "lastDurableWallTime" : ISODate("1970-01-01T00:00:00Z") }, "lastStableRecoveryTimestamp" : Timestamp(0, 0), "initialSyncStatus" : { "failedInitialSyncAttempts" : 0, "maxFailedInitialSyncAttempts" : 10, "initialSyncStart" : ISODate("2024-08-15T23:06:13.978Z"), "initialSyncAttempts" : [ ], "appliedOps" : 0, "initialSyncOplogStart" : Timestamp(1723763173, 1), "syncSourceUnreachableSince" : ISODate("2024-08-15T23:06:13.978Z"), "currentOutageDurationMillis" : NumberLong(8687), "totalTimeUnreachableMillis" : NumberLong(8687), "databases" : { "databasesCloned" : 3, "admin" : { "collections" : 4, "clonedCollections" : 4, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 429, "admin.system.roles" : { "documentsToCopy" : 22, "documentsCopied" : 22, "indexes" : 2, "fetchedBatches" : 1, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 138, "receivedBatches" : 1 }, "admin.system.users" : { "documentsToCopy" : 32, "documentsCopied" : 32, "indexes" : 2, "fetchedBatches" : 1, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 149, "receivedBatches" : 1 }, "admin.system.keys" : { "documentsToCopy" : 2, "documentsCopied" : 2, "indexes" : 1, "fetchedBatches" : 1, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 76, "receivedBatches" : 1 }, "admin.system.version" : { "documentsToCopy" : 2, "documentsCopied" : 2, "indexes" : 1, "fetchedBatches" : 1, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 66, "receivedBatches" : 1 } }, "config" : { "collections" : 2, "clonedCollections" : 2, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 198, "config.transactions" : { "documentsToCopy" : 0, "documentsCopied" : 0, "indexes" : 1, "fetchedBatches" : 0, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 74, "receivedBatches" : 0 }, "config.system.sessions" : { "documentsToCopy" : 0, "documentsCopied" : 0, "indexes" : 2, "fetchedBatches" : 0, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 124, "receivedBatches" : 0 } }, "test" : { "collections" : 1, "clonedCollections" : 1, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 47967, "test.hugeindex" : { "documentsToCopy" : 25000, "documentsCopied" : 25000, "indexes" : 2, "fetchedBatches" : 21, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "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) }, "optimeWritten" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "optimeDurable" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "optimeWrittenDate" : ISODate("1970-01-01T00:00:00Z"), "optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"), "lastAppliedWallTime": ISODate("1970-01-01T00:00:00Z"), "lastWrittenWallTime": ISODate("1970-01-01T00:00:00Z"), "lastDurableWallTime": ISODate("1970-01-01T00:00:00Z""), "lastHeartbeat" : ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"), "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) }, "optimeWritten" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "optimeDurable" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "optimeWrittenDate" : ISODate("1970-01-01T00:00:00Z"), "lastAppliedWallTime": ISODate("1970-01-01T00:00:00Z"), "lastWrittenWallTime": ISODate("2020-03-05T05:24:38Z"), "lastDurableWallTime": ISODate("1970-01-01T00:00:00Z"), "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "infoMessage" : "", "configVersion" : 2, "configTerm" : 1, "self" : true, "lastHeartbeatMessage" : "" } ], "ok" : 1 }
输出
replSetGetStatus 命令返回包含以下字段的文档
replSetGetStatus.set
set
的值是副本集的名称,配置在replSetName
设置中。这与_id
在rs.conf()
中的值相同。
replSetGetStatus.date
按照 ISODate 格式表示的日期和时间,包含处理 replSetGetStatus 命令的服务器当前时间。将此与
replSetGetStatus.members[n].lastHeartbeat
的值进行比较,以找到此服务器与其他副本集成员之间的操作延迟。
replSetGetStatus.term
副本集的选举计数,由该副本集成员所知。
term
被分布式一致性算法用来确保正确性。
replSetGetStatus.syncSourceHost
syncSourceHost
字段包含与此实例同步的成员的主机名。如果此实例是主节点,
syncSourceHost
为空字符串,且syncSourceId
为-1
。
replSetGetStatus.syncSourceId
syncSourceId
字段包含与此实例同步的成员的replSetGetStatus.members[n]._id
。如果此实例是主节点,
syncSourceHost
为空字符串,且syncSourceId
为-1
。
replSetGetStatus.writeMajorityCount
满足写入关注(即“majority”)所需的数据承载投票成员(即非仲裁员)的数量。只能将写入应用于数据承载成员。
有关
replSetGetStatus.writeMajorityCount
的计算,请参阅 计算写入关注的大多数数量。
replSetGetStatus.votingMembersCount
配置了
votes: 1
的成员数量,包括仲裁员。
replSetGetStatus.writableVotingMembersCount
配置了
votes: 1
(此值不包括仲裁者)的数据成员数量。
replSetGetStatus.optimes
optimes
字段包含一个文档,用于检查复制进度。该optimes
字段包括各种optimes对应的ISODate格式的日期字符串。每个optime值都是一个包含以下内容的文档
replSetGetStatus.optimes.lastCommittedWallTime
与
lastCommittedOpTime
.相对应的ISODate格式的日期字符串。
replSetGetStatus.optimes.readConcernMajorityOpTime
从该成员的角度来看,关于最近一次可以满足读取关注
"majority"
查询的信息;即满足lastCommittedOpTime
的最新的"majority"
查询。readConcernMajorityOpTime
要么小于或等于lastCommittedOpTime
。
replSetGetStatus.optimes.readConcernMajorityWallTime
与
readConcernMajorityOpTime
对应的ISODate格式的日期字符串。
replSetGetStatus.optimes.lastAppliedWallTime
对应于
appliedOpTime
.的ISODate格式的日期字符串。
replSetGetStatus.optimes.lastDurableWallTime
对应于
durableOpTime
.的ISODate格式的日期字符串。
replSetGetStatus.electionCandidateMetrics
与当前主节点选举相关的指标。
electionCandidateMetrics
仅在主节点或候选节点上可用。对于候选节点,在候选节点输掉选举后,这些指标将不可用。replSetGetStatus.electionCandidateMetrics.electionTerm
成员在调用新选举时的选举计数(即
term
)。
replSetGetStatus.electionCandidateMetrics.lastCommittedOpTimeAtElection
成员在调用新选举时看到的最新
majority-committed optime
。
replSetGetStatus.electionCandidateMetrics.lastSeenOpTimeAtElection
成员在调用新选举时的最新
applied optime
。
replSetGetStatus.electionCandidateMetrics.lastSeenWrittenOpTimeAtElection
在调用新选举时,此成员oplog中最近写入条目的optime。
新增在版本8.0.
replSetGetStatus.electionCandidateMetrics.priorityAtElection
在调用选举时成员的
priority
。
replSetGetStatus.electionCandidateMetrics.electionTimeoutMillis
在选举时刻复制的配置
electionTimeoutMillis
设置。
replSetGetStatus.electionCandidateMetrics.priorPrimaryMemberId
上一个主节点的
members[n]._id
。如果没有上一个主节点,则该字段不存在。
replSetGetStatus.electionCandidateMetrics.targetCatchupOpTime
新选出的主节点的追赶过程的目标 opTime。只有当新选出的主节点达到目标追赶 opTime 时,它才能开始接受写入。
replSetGetStatus.electionCandidateMetrics.wMajorityWriteAvailabilityDate
在选举后,副本集的写关注
"majority"
可用的时间(即新任期oplog条目被多数提交的时间)。
replSetGetStatus.electionParticipantMetrics
成员参与的最新选举的相关度量。
replSetGetStatus.electionParticipantMetrics.electionCandidateMemberId
发起选举的候选者的
members[n]._id
成员。
replSetGetStatus.electionParticipantMetrics.lastAppliedOpTimeAtElection
此成员在最近一次选举时的最新已应用操作时间。
optime值是一个包含时间戳(
ts
)和术语(t
)的文档。
replSetGetStatus.electionParticipantMetrics.lastWrittenOpTimeAtElection
在最近一次选举时写入此成员oplog的最新条目的optime。
新增在版本8.0.
replSetGetStatus.electionParticipantMetrics.maxWrittenOpTimeInSet
已知于该成员的,写入任何副本集成员的oplog的最近条目的optime。
新增在版本8.0.
replSetGetStatus.electionParticipantMetrics.newTermStartDate
当选主节点术语开始的时间;这对应于主节点将其oplog中的新术语条目写入时,而不是条目被添加(即复制)到副节点的oplog时。
此字段仅适用于次要成员。对于主节点,请参阅
replSetGetStatus.electionCandidateMetrics.newTermStartDate
。
replSetGetStatus.initialSyncStatus
一个文档,提供有关此成员 初始同步 进度和状态的详细信息。
replSetGetStatus.initialSyncStatus.initialSyncElapsedMillis
从
initialSyncStart
到initialSyncEnd
之间的毫秒数。
replSetGetStatus.initialSyncStatus.initialSyncAttempts
包含每个文档对应单个初始同步尝试的文档数组。例如
"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, "operationsRetried" : 120, "totalTimeUnreachableMillis" : 52601 } ], 每个文档包含以下初始同步尝试的信息
字段描述durationMillis初始同步尝试的持续时间(毫秒)。status初始同步尝试的退出状态。syncSource初始同步尝试的同步源。rollBackId初始同步尝试开始时同步源的回滚标识符。
rollBackId
在使用基于文件复制的基础初始同步时不会出现。operationsRetried所有操作重试尝试的总数。totalTimeUnreachableMillis重试操作尝试所花费的总时间。
replSetGetStatus.initialSyncStatus.appliedOps
初始同步开始后发生并应用于数据库克隆后的操作数量。
作为初始同步过程的一部分,成员使用oplog来更新其数据集,以反映副本集的当前状态。
replSetGetStatus.initialSyncStatus.initialSyncOplogStart
初始同步的oplog应用阶段开始的时间戳,其中成员应用了初始同步开始后发生的变化。
作为初始同步过程的一部分,成员使用oplog来更新其数据集,以反映副本集的当前状态。
replSetGetStatus.initialSyncStatus.initialSyncOplogEnd
初始同步阶段中oplog应用阶段结束的时间戳,其中成员应用了初始同步开始后发生的变化。
作为初始同步过程的一部分,成员使用oplog来更新其数据集,以反映副本集的当前状态。
replSetGetStatus.initialSyncStatus.databases
关于在初次同步期间复制的数据库的详细信息。
replSetGetStatus.initialSyncStatus.databases.databasesCloned
在初次同步期间复制的数据库数量。
replSetGetStatus.initialSyncStatus.databases.<dbname>
对于每个数据库,一个文档返回有关该数据库克隆进度的信息。
{ "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> } }
replSetGetStatus.initialSyncStatus.method
新增在版本5.2.
用于初始同步的方法。
如果设置为
logical
,则同步为 逻辑初始同步。如果设置为fileCopyBased
,则同步为基于文件复制的 初始同步。
replSetGetStatus.initialSyncStatus.approxTotalDataSize
所有待同步文件的大致大小(以字节为单位)。
当使用逻辑或基于文件复制的初始同步时,此字段将出现。
replSetGetStatus.initialSyncStatus.totalInitialSyncElapsedMillis
正在进行的同步尝试所花费的总时间。
当使用逻辑或基于文件复制的初始同步时,此字段将出现。
replSetGetStatus.initialSyncStatus.remainingInitialSyncEstimatedMillis
正在进行的同步尝试预期剩余时间。
当使用逻辑或基于文件复制的初始同步时,此字段将出现。
replSetGetStatus.initialSyncStatus.syncSourceLastApplied
在开始此 备份游标 之前,同步源上应用的最后更新 操作时间。
仅在基于文件复制的初始同步时出现此字段。
replSetGetStatus.initialSyncStatus.numExtensions
同步开始新 备份游标 的次数。
如果没有开始备份游标,则此字段不会出现。
仅在基于文件复制的初始同步时出现此字段。
replSetGetStatus.initialSyncStatus.extensionDataSize
当前 扩展 的总字节数。
如果没有正在进行扩展,则此字段不会出现。
仅在基于文件复制的初始同步时出现此字段。
replSetGetStatus.initialSyncStatus.files[n].extensionNumber
如果该文件是扩展的一部分,则表示该文件所属的扩展的编号。
仅在基于文件复制的初始同步时出现此字段。
replSetGetStatus.members
members
字段包含一个数组,该数组包含副本集每个成员的文档。replSetGetStatus.members[n].ip
成员解析后的IP地址。如果无法将
mongod
的replSetGetStatus.members[n].name
解析为IP地址,则返回值是BSON null。否则,返回值是解析后的IP地址的字符串表示形式。
replSetGetStatus.members[n].self
一个布尔值,表示成员是否是当前
mongod
实例。该
self
字段仅在当前mongod
实例的文档中包含,因此其值总是true
。
replSetGetStatus.members[n].stateStr
描述
状态
的字符串。
replSetGetStatus.members[n].uptime
对于执行
replSetGetStatus
命令的成员,uptime
是该成员在线的秒数。对于其他成员,
uptime
是该成员与执行replSetGetStatus
命令的成员持续通信的秒数。
replSetGetStatus.members[n].optimeDate
一个格式为ISODate的日期字符串,包含此成员已应用的最后一条操作日志的条目。如果此日期与
lastHeartbeat
有很大差异,则此成员可能正在经历“复制延迟”或自上次更新后没有新的操作。比较集合中所有成员的members.optimeDate
。
replSetGetStatus.members[n].optimeDurableDate
一个格式为ISODate的日期字符串,包含该成员应用到其日志的oplog中的最后一条记录。
replSetGetStatus.members[n].lastAppliedWallTime
一个格式为ISODate的日期字符串,反映了该副本集成员在主节点上应用最后操作时的系统时间。
replSetGetStatus.members[n].lastDurableWallTime
一个格式为ISODate的日期字符串,反映了最后一条写入该成员日志的操作在主节点上首次应用的系统时间。
replSetGetStatus.members[n].lastHeartbeat
包含处理 replSetGetStatus 命令的服务器收到来自心跳信息的最后时间的 ISODate 格式的日期和时间。将此值与
date
和lastHeartbeatRecv
字段的值进行比较,以跟踪这些副本集成员之间的延迟。此值仅适用于除了由
replSetGetStatus.members[n].self
指定的服务器之外的所有副本集成员。
replSetGetStatus.members[n].lastHeartbeatRecv
这是一个以 ISODate 格式化的日期和时间,表示处理 replSetGetStatus 命令的服务器从该成员(
members[n]
)接收到最后一次心跳请求的时间。将此值与date
和lastHeartbeat
字段的值进行比较,以跟踪这些副本集成员之间的延迟。此值仅适用于除了由
replSetGetStatus.members[n].self
指定的服务器之外的所有副本集成员。
replSetGetStatus.members[n].lastHeartbeatMessage
当最后的心跳包含额外消息时,
lastHeartbeatMessage
包含该消息的字符串表示形式。
replSetGetStatus.members[n].pingMs
pingMs
表示从远程成员到本地实例往返一次数据包所需的毫秒数(ms)。此值不会出现在返回
rs.status()
数据的成员中。
replSetGetStatus.members[n].syncSourceHost
syncSourceHost
字段存储了与此实例同步的成员的域名。如果
replSetGetStatus.members[n]
是主节点,则syncSourceHost
为空字符串,而syncSourceId
为-1
。
replSetGetStatus.members[n].syncSourceId
字段
syncSourceId
存储了replSetGetStatus.members[n]._id
的值,该值对应于syncSourceHost
.如果
replSetGetStatus.members[n]
是主节点,则syncSourceHost
为空字符串,而syncSourceId
为-1
。
replSetGetStatus.members[n].configVersion
configVersion
的值是副本集配置版本
.
replSetGetStatus.members[n].optimeWritten
最近写入成员操作日志的 optime。
新增在版本8.0.
replSetGetStatus.tooStale
一个布尔值,指示副本集成员落后于主节点的oplog太远,并处于
RECOVERING
状态。当此字段的值为true
时,才包含在replSetGetStatus
输出中。
有关ok
状态字段、operationTime
字段和$clusterTime
字段详情,请参阅响应。