对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

replSetGetStatus(数据库命令)

replSetGetStatus

replSetGetStatus 命令从处理该命令的服务器的角度返回副本集的状态。在管理员数据库上运行 replSetGetStatus。

mongod 实例必须是副本集节点,replSetGetStatus 才能成功返回。

此命令的数据来源于其他副本集成员发送的心跳。由于心跳频率,这些数据可能会过时几秒。

提示

在 mongosh 中,该命令也可通过 rs.status() 辅助方法运行。

辅助方法对 mongosh 用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

重要

M0 和 Flex 集群不支持此命令。有关更多信息,请参阅不支持的命令。

该命令具有以下语法:

db.adminCommand( { replSetGetStatus: 1 })

如果在节点的 初始同步期间(即 STARTUP2 状态)对节点运行 replSetGetStatus 或 mongosh 辅助程序 rs.status(),则命令返回 replSetGetStatus.initialSyncStatus 指标。

成员完成初始同步并过渡到另一种状态后,replSetGetStatus.initialSyncStatus 指标将不再可用。

注意

如果尚未initialized副本集, 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" : Long(3), "syncSourceHost" : "", "syncSourceId" : -1, "heartbeatIntervalMillis" : Long(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 3, "writableVotingMembersCount" : 3, "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "lastCommittedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "readConcernMajorityOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "appliedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "writtenOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "durableOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(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" : Long(3), "lastCommittedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(2) }, "lastSeenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(2) }, "lastSeenWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(1) }, "numVotesNeeded" : 2, "priorityAtElection" : 1, "electionTimeoutMillis" : Long(10000), "priorPrimaryMemberId" : 1, "numCatchUpOps" : Long(0), "newTermStartDate" : ISODate("2024-08-15T23:06:13.978Z"), "wMajorityWriteAvailabilityDate" : ISODate("2024-08-15T23:06:13.978Z") }, "electionParticipantMetrics" : { "votedForCandidate" : true, "electionTerm" : Long(2), "lastVoteDate" : ISODate("2024-08-15T23:06:13.978Z"), "electionCandidateMemberId" : 1, "voteReason" : "", "lastAppliedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(1) }, "lastWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(1) }, "maxAppliedOpTimeInSet" : { "ts" : Timestamp(1723763173, 1), "t" : Long(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" : Long(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : Long(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" : Long(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : Long(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" : Long(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" : Long(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : Long(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" : Long(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" : Long("6800589497806356482") } }, "operationTime" : Timestamp(1723763173, 1)}

replSetGetStatus 命令会返回一个包含以下字段的文件:

replSetGetStatus.set

set 值是副本集的名称,在replSetName 设置中配置。这与 rs.conf() 中的 _id 值相同。

replSetGetStatus.date

ISODate 格式的日期和时间,其中包含基于处理 replSetGetStatus 命令的服务器的当前时间。将此值与 replSetGetStatus.members[n].lastHeartbeat 的值进行比较,以确定此服务器与副本集其他节点之间的运行延迟。

replSetGetStatus.myState

介于 0 和 10 之间的整数,表示当前成员的副本状态。

replSetGetStatus.term

副本集的选举次数,这是该副本集成员所知道的。分布式共识算法使用 term 来确保正确性。

replSetGetStatus.syncSourceHost

syncSourceHost 字段保存此实例同步的节点的主机名。

如果此实例为主节点,则 syncSourceHost 为空字符串,且 syncSourceId 会 -1。

replSetGetStatus.syncSourceId

syncSourceId 字段保存此实例与之同步的节点的 replSetGetStatus.members[n]._id。

如果此实例为主节点,则 syncSourceHost 为空字符串,且 syncSourceId 会 -1。

replSetGetStatus.heartbeatIntervalMillis

心跳频率(以毫秒为单位)。

replSetGetStatus.majorityVoteCount

在选举中选出新的主节点所需的多数票数。

replSetGetStatus.writeMajorityCount

满足写关注(write concern) "majority" 所需的数据承载投票节点数量。写入操作只能应用于数据承载节点。

有关 replSetGetStatus.writeMajorityCount 的计算,请参阅计算写关注 Majority。

replSetGetStatus.votingMembersCount

使用 votes: 1 配置的成员数,包括仲裁节点。

replSetGetStatus.writableVotingMembersCount

使用 votes: 1 配置的数据承载成员的数量(不包括仲裁节点)。

replSetGetStatus.optimes

optimes 字段包含一个文档,其中包含用于检查复制进度的 optime。optimes 字段包括各种操作时间的相应 ISODate 格式的日期字符串。

每个 ops/sec 值均为一个包含以下内容的文档:

  • ts,操作的时间戳。

  • t,在这个 term 中,操作最初是在主节点上生成的。

replSetGetStatus.optimes.lastCommittedOpTime

从该成员的角度来看,有关最近一次写入大多数副本集成员的操作的信息。

replSetGetStatus.optimes.lastCommittedWallTime

与 lastCommittedOpTime 相对应的 ISODate 格式日期字符串。

replSetGetStatus.optimes.readConcernMajorityOpTime

从该节点的角度来看,有关可以完成读关注(read concern) "majority" 查询的最新操作的信息。lastCommittedOpTime即可以完成 查询的最新"majority" 。readConcernMajorityOpTime 小于或等于 lastCommittedOpTime。

replSetGetStatus.optimes.appliedOpTime

从该成员的角度来看,有关最近一次应用于该副本集成员的操作的信息。

replSetGetStatus.optimes.lastAppliedWallTime

与 appliedOpTime 相对应的 ISODate 格式日期字符串。

replSetGetStatus.optimes.durableOpTime

从该成员的角度来看,有关最近一次写入该副本集成员日志的操作的信息。

replSetGetStatus.optimes.lastDurableWallTime

与 durableOpTime 相对应的 ISODate 格式日期字符串。

replSetGetStatus.optimes.lastWrittenWallTime

写入该成员 oplog 的最新条目的 ISODate 格式日期字符串。

8.0版本新增。

replSetGetStatus.optimes.writtenOpTime

写入该成员 oplog 的最新条目的 optime。

8.0版本新增。

replSetGetStatus.lastStableRecoveryTimestamp

仅供内部使用

replSetGetStatus.electionCandidateMetrics

与当前主节点选举相关的指标。electionCandidateMetrics 仅适用于主节点或候选节点。对于候选节点来说,在候选节点未被选为主节点后,这些指标将不可用。

replSetGetStatus.electionCandidateMetrics.lastElectionReason

成员宣布选举的原因。

replSetGetStatus.electionCandidateMetrics.lastElectionDate

该成员发起选举的日期和时间。

replSetGetStatus.electionCandidateMetrics.electionTerm

节点发起新选举时的选举计数(即 term)。

replSetGetStatus.electionCandidateMetrics.lastCommittedOpTimeAtElection

该成员在发起新选举时看到的最近一次 majority-committed optime。

replSetGetStatus.electionCandidateMetrics.lastSeenOpTimeAtElection

该成员在发起新选举时的最近一次 applied optime。

replSetGetStatus.electionCandidateMetrics.lastSeenWrittenOpTimeAtElection

在调用新选举时,写入该节点的 oplog 的最新条目的 optime 。

8.0版本新增。

replSetGetStatus.electionCandidateMetrics.numVotesNeeded

赢得选举所需的票数。

replSetGetStatus.electionCandidateMetrics.priorityAtElection

宣布选举时该成员的priority。

replSetGetStatus.electionCandidateMetrics.electionTimeoutMillis

选举时副本集已配置的 electionTimeoutMillis 设置。

replSetGetStatus.electionCandidateMetrics.priorPrimaryMemberId

上一个主节点的 members[n]._id。如果没有以前的主节点,则该字段不存在。

replSetGetStatus.electionCandidateMetrics.targetCatchupOpTime

新当选的主节点的目标 ops/sec 用于其追赶过程。只有当新当选的主节点达到目标追赶 ops/sec 时,它才能开始接受写入。

replSetGetStatus.electionCandidateMetrics.numCatchUpOps

新当选的主节点在成功结束追赶过程时所应用的操作数量。

replSetGetStatus.electionCandidateMetrics.newTermStartDate

成员作为主节点的时段开始的日期和时间(即 new term 条目写入 oplog 的日期和时间)。

replSetGetStatus.electionCandidateMetrics.wMajorityWriteAvailabilityDate

在副本集选举后,写关注 "majority" 可用的日期和时间(new term oplog 条目被多数提交的日期和时间)。

replSetGetStatus.electionParticipantMetrics

与节点参与的最近一次选举相关的指标。

replSetGetStatus.electionParticipantMetrics.votedForCandidate

布尔值,表示该节点是否投票支持召集选举的候选节点。

replSetGetStatus.electionParticipantMetrics.electionTerm

成员所参与选举的任期。该任期可标识与参与者指标关联的选举。

replSetGetStatus.electionParticipantMetrics.lastVoteDate

记录参与者投票时间的 ISODate 格式的日期字符串。

replSetGetStatus.electionParticipantMetrics.electionCandidateMemberId

召集选举的候选节点的 members[n]._id。

replSetGetStatus.electionParticipantMetrics.voteReason

如果该成员未投票给候选节点,那么投票的原因是什么。如果该成员投票给候选节点,则该值为空字符串。

replSetGetStatus.electionParticipantMetrics.lastAppliedOpTimeAtElection

该成员在上次选举时最近一次应用的 optime。

ops/sec 值是一个包含时间戳 (ts) 和任期 (t) 的文档。

replSetGetStatus.electionParticipantMetrics.lastWrittenOpTimeAtElection

在上次选举时写入此节点的 oplog 的最新条目的 optime。

8.0版本新增。

replSetGetStatus.electionParticipantMetrics.maxAppliedOpTimeInSet

如该节点所知,为任何副本集节点最近一次应用的 optime。

replSetGetStatus.electionParticipantMetrics.maxWrittenOpTimeInSet

写入任何副本集节点的 oplog 的最新条目的 optime ,如该节点已知。

8.0版本新增。

replSetGetStatus.electionParticipantMetrics.priorityAtElection

选举时该成员的 priority。

replSetGetStatus.electionParticipantMetrics.newTermStartDate

当选的主节点任期的开始日期和时间;这对应于主节点将 new term 条目写入其 oplog 的时间,而不是该条目被添加(即复制)到从节点的 oplog 的时间。

该字段仅适用于从节点。对于主节点,请参阅 replSetGetStatus.electionCandidateMetrics.newTermStartDate。

replSetGetStatus.electionParticipantMetrics.newTermAppliedDate

此从节点应用 new term 条目的日期和时间。

该字段仅适用于从节点。

replSetGetStatus.initialSyncStatus

提供有关该成员初始同步进度和状态信息的文档。

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在初始同步期间在 STARTUP2 状态下在节点上运行时可用。

replSetGetStatus.initialSyncStatus.failedInitialSyncAttempts

初始同步失败的次数,在此失败次数后成员必须重新启动。

replSetGetStatus.initialSyncStatus.maxFailedInitialSyncAttempts

在该成员关闭之前,可以在该成员上重新启动初始同步的最大次数。

replSetGetStatus.initialSyncStatus.initialSyncStart

该成员的初始同步的起始时间戳。

replSetGetStatus.initialSyncStatus.initialSyncEnd

此成员的 initial sync 的结束时间戳。

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

初始同步尝试的持续时间(以毫秒为单位)。

状态

初始同步尝试的退出状态。

syncSource

初始同步尝试的同步源。

rollBackId

初始同步尝试开始时同步源的回滚标识符。

rollBackId 在使用基于文件复制的初始同步时不会出现。

operationsRetried

所有操作重试的总次数。

totalTimeUnreachableMillis

重试操作尝试所花费的总时间。

另请参阅 failedInitialSyncAttempts。

replSetGetStatus.initialSyncStatus.appliedOps

初始同步开始后发生并在复制数据库后应用的操作数。

作为初始同步过程的一部分,该成员会使用 oplog 更新其数据集以反映副本集的当前状态。

replSetGetStatus.initialSyncStatus.initialSyncOplogStart

初始同步的 oplog 应用程序阶段的开始时间戳,成员在此阶段会应用初始同步开始后发生的更改。

作为初始同步过程的一部分,该成员会使用 oplog 更新其数据集以反映副本集的当前状态。

replSetGetStatus.initialSyncStatus.initialSyncOplogEnd

初始同步的 oplog 应用程序阶段的结束时间戳,成员在此阶段会应用初始同步开始后发生的更改。

作为初始同步过程的一部分,该成员会使用 oplog 更新其数据集以反映副本集的当前状态。

replSetGetStatus.initialSyncStatus.syncSourceUnreachableSince

同步源变得无法访问的日期和时间。

只有在当前初始同步期间同步源不可用时才会出现。

replSetGetStatus.initialSyncStatus.currentOutageDurationMillis

同步源不可用的时长(以毫秒为单位)。

只有在当前初始同步期间同步源不可用时才会出现。

replSetGetStatus.initialSyncStatus.totalTimeUnreachableMillis

当前初始同步期间该成员不可用的总时长(以毫秒为单位)。

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.approxTotalBytesCopied

已复制的总字节数。

此字段会在使用基于逻辑或文件副本的初始同步时出现。

replSetGetStatus.initialSyncStatus.totalInitialSyncElapsedMillis

正在进行的同步尝试所耗费的总时间。

此字段会在使用基于逻辑或文件副本的初始同步时出现。

replSetGetStatus.initialSyncStatus.remainingInitialSyncEstimatedMillis

正在进行的同步尝试的预期剩余时间。

此字段会在使用基于逻辑或文件副本的初始同步时出现。

replSetGetStatus.initialSyncStatus.initialBackupDataSize

要同步的初始文件集的总大小(以字节为单位)。

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.initialSyncStatus.previousOplogEnd

前一备份游标中可用的 ops/sec。

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.initialSyncStatus.currentOplogEnd

保证在当前备份游标中可用的最后一个 ops/sec

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.initialSyncStatus.syncSourceLastApplied

在此备份游标开始之前,在同步源上应用的最后一次更新的 ops/sec。

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.initialSyncStatus.numExtensions

同步已启动新备份游标的次数。

如果备份游标尚未启动,则不会显示此字段。

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.initialSyncStatus.extensionDataSize

当前扩展中的总字节数。

如果没有正在进行的扩展,则不会显示此字段。

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.initialSyncStatus.files

基于文件拷贝的初始同步过程中要同步的文件数组。

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.initialSyncStatus.files[n].filePath

此文件相对于备份游标根目录的路径。

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.initialSyncStatus.files[n].fileSize

备份游标所报告的文件大小。

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.initialSyncStatus.files[n].bytesCopied

目前已复制的字节数。

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.initialSyncStatus.files[n].extensionNumber

如果此文件是某个扩展的一部分,则该文件所属扩展的名称。

此字段仅在使用基于文件拷贝的初始同步时出现。

replSetGetStatus.members

members 字段保存一个数组,其中包含副本集中每个成员的文档。

replSetGetStatus.members[n]._id

成员的标识符。

replSetGetStatus.members[n].name

该成员的名称。

replSetGetStatus.members[n].ip

节点的已解析 IP 地址。如果 mongod 无法将 replSetGetStatus.members[n].name 解析为 IP 地址,则返回值为 BSON 空值。否则,返回的值是解析的 IP 地址的字符串表示形式。

replSetGetStatus.members[n].self

布尔值,表示该成员是否为当前 mongod 实例。

self字段仅包含在当前mongod实例的文档中,因此其值始终为 true。

replSetGetStatus.members[n].health

一个表示该成员是处于活动状态 (1) 还是非活动状态 (0) 的数字。

replSetGetStatus.members[n].state

介于 0 和 10 之间的整数,表示成员的副本状态。

replSetGetStatus.members[n].stateStr

一个描述 state 的字符串。

replSetGetStatus.members[n].uptime

对于运行 replSetGetStatus 命令的节点,uptime 是该节点在线的秒数。

对于其他节点,uptime 是该节点与运行 replSetGetStatus 命令的节点持续通信的秒数。

replSetGetStatus.members[n].optime

关于该成员应用的来自操作日志的最后一次操作的信息。

optime 返回一个包含以下内容的文档:

  • ts,对 oplog 副本集的该节点应用最后一次操作的 时间戳。

  • t,在这个 term 中,最后一个应用的操作最初是在主节点上生成的。

replSetGetStatus.members[n].optimeDurable

关于该成员已应用到其日志的来自 oplog 的最后一次操作的信息。

optimeDurable 返回一个包含以下内容的文档:

  • ts,操作的时间戳。

  • t,在这个 term 中,此操作最初是在主节点上生成的。

replSetGetStatus.members[n].optimeDate

ISODate 格式的日期字符串,其中包含该节点已应用的 oplog 中的最后一个条目。如果该字符串与 lastHeartbeat 有很大出入,则表示该节点出现“复制延迟”或自上次更新后便无任何新操作。比较该集合中所有成员之间的 members.optimeDate。

replSetGetStatus.members[n].optimeDurableDate

一个 ISODate 格式的日期字符串,其中包含 oplog 中该成员应用于其日记中的最后一个条目。

replSetGetStatus.members[n].lastAppliedWallTime

ISODate格式的日期string,反映副本集的节点在主节点 (primary node in the replica set)节点上应用的最后一次操作的挂钟时间。

replSetGetStatus.members[n].lastDurableWallTime

ISODate 格式的日期字符串,反映最后一次写入该节点日志记录的操作首次应用于主节点 (primary node in the replica set)节点的挂钟时间。

replSetGetStatus.members[n].electionTime

对于当前主节点 (primary node in the replica set),操作日志中有关选举时间戳的信息。有关选举的更多信息,请参阅副本集选举。

replSetGetStatus.members[n].electionDate

对于当前主节点 (primary node in the replica set),包含选举日期的ISODate格式的日期字符串。有关选举的更多信息,请参阅副本集选举。

replSetGetStatus.members[n].lastHeartbeat

ISODate 格式的日期和时间,其中包含处理 replSetGetStatus 命令的服务器上次收到发送到此成员 (members[n]) 的心跳响应时间。将此值与 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 字段存储 syncSourceHost 的 replSetGetStatus.members[n]._id 值。

如果 replSetGetStatus.members[n] 是主节点,则 syncSourceHost 是一个空字符串,且 syncSourceId 为 -1。

replSetGetStatus.members[n].configVersion

configVersion 值是 replica set configuration version。

replSetGetStatus.members[n].optimeWritten

写入节点的 oplog 的最新条目的 optime。

8.0版本新增。

replSetGetStatus.members[n].optimeWrittenDate

写入节点 oplog 的最新条目的 ISODate 格式日期字符串。

8.0版本新增。

replSetGetStatus.members[n].lastWrittenWallTime

该节点的最新 oplog 条目在主节点写入时间的 ISODate 格式的日期字符串。

8.0版本新增。

replSetGetStatus.tooStale

一个布尔值,它表示某一副本集节点已严重落后于主节点的 oplog,并陷入 RECOVERING 状态。仅当其值为 true 时,该字段才会包含在 replSetGetStatus 输出中。

有关 ok 状态字段、operationTime 字段和 $clusterTime 字段的详情,另请参阅响应。

replSetGetStatus.optime

从副本集删除节点后出现。提供已删除节点应用的最后一个 oplog 条目的 optime。

replSetGetStatus.optimeDate

从副本集删除节点后出现。提供已删除节点应用的最后一个 oplog 条目的 optime 的 ISODate 格式字符串。

replSetGetStatus.optimeWritten

从副本集删除成员后出现。提供写入被删除成员的 oplog 的最后一项的 optime。

8.0版本新增。

replSetGetStatus.optimeWrittenDate

从副本集删除节点后出现。提供写入已删除节点的 oplog 中的最后一个条目的 optime 的 ISODate 格式的字符串。

8.0版本新增。

给本页内容打分