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

replSetGetStatus(数据库命令)

replSetGetStatus

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

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

此命令提供的数据源自副本集其他成员发送到服务器的心跳中包含的数据。由于心跳的频率,这些数据可能会过时几秒钟。

提示

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

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

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

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

重要

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

该命令具有以下语法:

db.adminCommand(
{
replSetGetStatus: 1
}
)

如果您在replSetGetStatus 状态下的初始同步期间对成员运行rs.status()mongosh STARTUP2辅助程序 ,则该命令会返回replSetGetStatus.initialSyncStatus 指标。

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

以下示例对副本集主节点 (primaryreplSetGetStatus node in the replica set)的管理员数据库运行 命令:

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)
},
"durableOpTime" : {
"ts" : Timestamp(1723763173, 1),
"t" : Long(3)
},
"lastAppliedWallTime" : ISODate("2020-03-05T05:24:38.122Z"),
"lastDurableWallTime" : ISODate("2020-03-05T05:24:38.122Z")
},
"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)
},
"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)
},
"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)
},
"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"),
"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)
},
"optimeDurable" : {
"ts" : Timestamp(1723763173, 1),
"t" : Long(3)
},
"optimeDate" : ISODate("2024-08-15T23:06:13.978Z"),
"optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"),
"lastAppliedWallTime": 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)
},
"optimeDurable" : {
"ts" : Timestamp(1723763173, 1),
"t" : Long(3)
},
"optimeDate" : ISODate("2024-08-15T23:06:13.978Z"),
"optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"),
"lastAppliedWallTime": 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)
}

以下示例对副本集从节点(secondary node from replica set)的管理员数据库运行replSetGetStatus 命令:

db.adminCommand( { replSetGetStatus: 1 } )

该命令将返回一个示例副本集从节点的如下输出:

{
"set" : "replset",
"date" : ISODate("2024-08-15T23:06:13.978Z"),
"myState" : 2,
"term" : Long(3),
"syncSourceHost" : "m3.example.net:27017",
"syncSourceId" : 2,
"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)
},
"durableOpTime" : {
"ts" : Timestamp(1723763173, 1),
"t" : Long(3)
},
"lastAppliedWallTime" : ISODate("2024-08-15T23:06:13.978Z"),
"lastDurableWallTime" : ISODate("2024-08-15T23:06:13.978Z")
},
"lastStableRecoveryTimestamp" : Timestamp(1723763173, 1),
"electionParticipantMetrics" : {
"votedForCandidate" : true,
"electionTerm" : Long(3),
"lastVoteDate" : ISODate("2024-08-15T23:06:13.978Z"),
"electionCandidateMemberId" : 0,
"voteReason" : "",
"lastAppliedOpTimeAtElection" : {
"ts" : Timestamp(1723763173, 1),
"t" : Long(2)
},
"maxAppliedOpTimeInSet" : {
"ts" : Timestamp(1723763173, 1),
"t" : Long(2)
},
"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" : Long(3)
},
"optimeDurable" : {
"ts" : Timestamp(1723763173, 1),
"t" : Long(3)
},
"optimeDate" : ISODate("2024-08-15T23:06:13.978Z"),
"optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"),
"lastAppliedWallTime": 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" : "",
"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" : Long(3)
},
"optimeDurable" : {
"ts" : Timestamp(1723763173, 1),
"t" : Long(3)
},
"optimeDate" : ISODate("2024-08-15T23:06:13.978Z"),
"lastAppliedWallTime": 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" : Long(3)
},
"optimeDurable" : {
"ts" : Timestamp(1723763173, 1),
"t" : Long(3)
},
"optimeDate" : ISODate("2024-08-15T23:06:13.978Z"),
"optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"),
"lastAppliedWallTime": 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,"kmhE5YARZlzn/DX4B/D0E5P6okY="),
"keyId" : Long("6800589497806356482")
}
},
"operationTime" : Timestamp(1723763173, 1),
}
在早期版本(3.4.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 指标将不再可用。

replSetGetStatus4以下示例在初始同步期间对.4 副本集成员的管理员数据库运行 命令:

{
"set" : "replset",
"date" : ISODate("2024-08-15T23:06:13.978Z")
"myState" : 5,
"term" : Long(1),
"syncSourceHost" : "m1.example.net:27017",
"syncSourceId" : 0,
"heartbeatIntervalMillis" : Long(2000),
"majorityVoteCount" : 2,
"writeMajorityCount" : 2,
"votingMembersCount" : 2,
"writableVotingMembersCount" : 2,
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(0, 0),
"t" : Long(-1)
},
"lastCommittedWallTime" : ISODate("1970-01-01T00:00:00Z"),
"appliedOpTime" : {
"ts" : Timestamp(0, 0),
"t" : Long(-1)
},
"durableOpTime" : {
"ts" : Timestamp(0, 0),
"t" : Long(-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("2024-08-15T23:06:13.978Z"),
"initialSyncAttempts" : [ ],
"appliedOps" : 0,
"initialSyncOplogStart" : Timestamp(1723763173, 1),
"syncSourceUnreachableSince" : ISODate("2024-08-15T23:06:13.978Z"),
"currentOutageDurationMillis" : Long(8687),
"totalTimeUnreachableMillis" : Long(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" : Long(-1)
},
"optimeDurable" : {
"ts" : Timestamp(0, 0),
"t" : Long(-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("2024-08-15T23:06:13.978Z"),
"lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"),
"pingMs" : Long(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" : Long(-1)
},
"optimeDurable" : {
"ts" : Timestamp(0, 0),
"t" : Long(-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
}

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

replSetGetStatus.set

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

replSetGetStatus.date

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

replSetGetStatus.myState

介于 010 之间的整数,表示当前成员的副本状态

replSetGetStatus.term

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

replSetGetStatus.syncSourceHost

syncSourceHost字段保存此实例同步的成员的主机名。

如果此实例是主节点 (primary node in the replica set),则 为空字符串,syncSourceHostsyncSourceId-1

replSetGetStatus.syncSourceId

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

如果此实例是主节点 (primary node in the replica set),则 为空字符串,syncSourceHostsyncSourceId-1

replSetGetStatus.heartbeatIntervalMillis

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

replSetGetStatus.majorityVoteCount

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

replSetGetStatus.writeMajorityCount

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

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

replSetGetStatus.votingMembersCount

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

replSetGetStatus.writableVotingMembersCount

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

replSetGetStatus.optimes

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

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

  • ts,操作的时间戳

  • t,最初在主节点 (primary node in the replica set)上生成操作的term

replSetGetStatus.optimes.lastCommittedOpTime

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

replSetGetStatus.optimes.lastCommittedWallTime

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

replSetGetStatus.optimes.readConcernMajorityOpTime

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

replSetGetStatus.optimes.appliedOpTime

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

replSetGetStatus.optimes.lastAppliedWallTime

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

replSetGetStatus.optimes.durableOpTime

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

replSetGetStatus.optimes.lastDurableWallTime

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

replSetGetStatus.lastStableRecoveryTimestamp

仅供内部使用

replSetGetStatus.electionCandidateMetrics

与当前主节点 (primary node in the replicaelectionCandidateMetrics set)选举相关的指标。 仅适用于主节点 (primary node in the replica set)或候选选举。对于候选节点,在候选节点选举后,这些指标将不可用。

replSetGetStatus.electionCandidateMetrics.lastElectionReason

成员宣布选举的原因。

replSetGetStatus.electionCandidateMetrics.lastElectionDate

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

replSetGetStatus.electionCandidateMetrics.electionTerm

term该成员在调用新选举时的选举计数(即 )。

replSetGetStatus.electionCandidateMetrics.lastCommittedOpTimeAtElection

majority-committed optime该成员看到的最近的 ,当时它称为新选举。

replSetGetStatus.electionCandidateMetrics.lastSeenOpTimeAtElection

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

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

该成员在选举时最近一次应用的 ops/sec。

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

replSetGetStatus.electionParticipantMetrics.maxAppliedOpTimeInSet

如该成员所知,为此副本集的任何成员最近一次应用的 ops/sec。

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

replSetGetStatus.electionParticipantMetrics.priorityAtElection

选举时该成员的 priority

replSetGetStatus.electionParticipantMetrics.newTermStartDate

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

该字段仅适用于从从节点(secondary node from replica set)。对于主节点 (primary node in the replica set),请参阅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

initialSyncStartinitialSyncEnd 之间的毫秒数。

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 null。否则,返回的值是解析的IP解决的字符串表示形式。

replSetGetStatus.members[n].self

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

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

replSetGetStatus.members[n].health

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

replSetGetStatus.members[n].state

介于 010 之间的整数,表示成员的副本状态

replSetGetStatus.members[n].stateStr

描述state 的字符串。

replSetGetStatus.members[n].uptime

对于运行replSetGetStatus 命令的成员,uptime 是该成员已在线的秒数。

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

replSetGetStatus.members[n].optime

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

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

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

  • t,其中最后一次应用的操作最初是在主节点 (primary node in the replica set)上生成的term

replSetGetStatus.members[n].optimeDurable

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

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

  • ts,操作的时间戳

  • t,最初在主节点 (primary node in the replica set)上生成此操作的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

操作日志中有关选举时间戳的信息(适用于当前主节点)。有关选举的更多信息,请参阅副本集高可用性

replSetGetStatus.members[n].electionDate

包含选举日期的 ISODate 格式的日期字符串(适用于当前主节点)。有关选举的更多信息,请参阅副本集高可用性

replSetGetStatus.members[n].lastHeartbeat

ISODate格式的日期和时间,其中包含处理 replSetGetStatus 命令的服务器上次收到发送到此成员 ()members[n] 的心跳响应的时间。将该值与datelastHeartbeatRecv 字段的值进行比较,以追踪这些副本集成员之间的延迟。

此值仅适用于replSetGetStatus.members[n].self 指定的服务器以外的副本集节点。

replSetGetStatus.members[n].lastHeartbeatRecv

ISODate格式的日期和时间,其中包含处理 replSetGetStatus 命令的服务器上次收到来自该成员 ()members[n] 的心跳请求的时间。将该值与datelastHeartbeat 字段的值进行比较,以追踪这些副本集成员之间的延迟。

此值仅适用于replSetGetStatus.members[n].self 指定的服务器以外的副本集节点。

replSetGetStatus.members[n].lastHeartbeatMessage

当最后一次心跳包含额外的消息时,lastHeartbeatMessage 包含该消息的字符串表示形式。

replSetGetStatus.members[n].pingMs

pingMs 表示往返数据包在远程成员和本地实例之间传输所需的毫秒 (ms) 数。

该值不会出现在返回 rs.status() 数据的节点中。

replSetGetStatus.members[n].syncSourceHost

syncSourceHost字段保存此实例同步的成员的主机名。

如果 是主节点 (primaryreplSetGetStatus.members[n] node in the replica set),则syncSourceHost 是空字符串, 是syncSourceId-1

replSetGetStatus.members[n].syncSourceId

syncSourceId字段会保存 的replSetGetStatus.members[n]._id syncSourceHost值。

如果 是主节点 (primaryreplSetGetStatus.members[n] node in the replica set),则syncSourceHost 是空字符串, 是syncSourceId-1

replSetGetStatus.members[n].configVersion

configVersion 值是 replica set configuration version

replSetGetStatus.tooStale

一个布尔值,表示副本集节点已远远落后于主节点的oplog ,并停留在RECOVERING 状态。仅当其值为 时,此字段才会包含在replSetGetStatus true输出中。

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

replSetGetStatus.optime

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

replSetGetStatus.optimeDate

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

给本页内容打分