Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

replSetGetStatus

在此页面上

  • 定义
  • 兼容性
  • 语法
  • 例子
  • 输出
replSetGetStatus

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

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

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

提示

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

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

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

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

重要

M 0 、M 2和 M 5集群不支持此命令。 有关更多信息,请参阅不支持的命令。

该命令具有以下语法:

db.adminCommand( { replSetGetStatus: 1 } )

如果在成员初始同步期间对成员运行 replSetGetStatusmongosh 帮助程序 rs.status()(即STARTUP2状态),则命令返回 replSetGetStatus.initialSyncStatus 指标。

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

如下示例将在副本集主节点的管理员数据库上运行 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)
},
"durableOpTime" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(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" : NumberLong(3),
"lastCommittedOpTimeAtElection" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(2)
},
"lastSeenOpTimeAtElection" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(2)
},
"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)
},
"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)
},
"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"),
"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)
},
"optimeDurable" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(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" : 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)
},
"optimeDurable" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(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" : 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)
},
"durableOpTime" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(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" : NumberLong(3),
"lastVoteDate" : ISODate("2024-08-15T23:06:13.978Z"),
"electionCandidateMemberId" : 0,
"voteReason" : "",
"lastAppliedOpTimeAtElection" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(2)
},
"maxAppliedOpTimeInSet" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(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" : NumberLong(3)
},
"optimeDurable" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(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" : 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)
},
"optimeDurable" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(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" : NumberLong(3)
},
"optimeDurable" : {
"ts" : Timestamp(1723763173, 1),
"t" : NumberLong(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" : 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.4.x-4.2.0)中

您可以包括可选的 initialSync: 1 以在输出中包含 replSetGetStatus.initialSyncStatus(如果您不想返回初始同步状态,则可以省略):

db.adminCommand( { replSetGetStatus : 1, initialSync: 1} )

如果您在初始同步期间对成员运行 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)
},
"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("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)
},
"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("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)
},
"optimeDurable" : {
"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
}

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

replSetGetStatus.set

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

replSetGetStatus.date

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

replSetGetStatus.myState

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

replSetGetStatus.term

版本 3.2 中的新增功能

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

replSetGetStatus.syncSourceHost

4.0 版本新增:3.6.6、 3.4.16

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

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

replSetGetStatus.syncSourceId

4.0 版本新增:3.6.6、 3.4.16

syncSourceId字段会保存此实例同步的成员的replSetGetStatus.members[n]._id

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

replSetGetStatus.heartbeatIntervalMillis

版本 3.2 中的新增功能

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

replSetGetStatus.majorityVoteCount

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

replSetGetStatus.writeMajorityCount

需要满足写关注 "majority" 的数据承载投票成员(即非仲裁节点)的数量。写操作只能应用于数据承载成员。

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

replSetGetStatus.votingMembersCount

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

replSetGetStatus.writableVotingMembersCount

使用 配置的 数据承载 votes: 1节点的数量;也就是说,该计数不包括仲裁节点。

replSetGetStatus.optimes

版本 3.4 中的新增功能

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

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

  • ts,操作的时间戳

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

replSetGetStatus.optimes.lastCommittedOpTime

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

replSetGetStatus.optimes.lastCommittedWallTime

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

replSetGetStatus.optimes.readConcernMajorityOpTime

从该节点的角度来看,有关可以完成读关注 "majority" 查询的最新操作的信息;即可以满足 "majority" 查询的最新 lastCommittedOpTimereadConcernMajorityOpTime 小于或等于 lastCommittedOpTime

replSetGetStatus.optimes.readConcernMajorityWallTime

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

replSetGetStatus.optimes.appliedOpTime

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

replSetGetStatus.optimes.lastAppliedWallTime

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

replSetGetStatus.optimes.durableOpTime

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

replSetGetStatus.optimes.lastDurableWallTime

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

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

副本集选举后写关注(write concern)"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 的时间。

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

replSetGetStatus.electionParticipantMetrics.newTermAppliedDate

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

该字段仅适用于从节点。

replSetGetStatus.initialSyncStatus

版本 3.4 中的新增功能

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.failedInitialSyncAttempts

版本 3.4 中的新增功能

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.maxFailedInitialSyncAttempts

版本 3.4 中的新增功能

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.initialSyncStart

版本 3.4 中的新增功能

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.initialSyncEnd

版本 3.4 中的新增功能

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.initialSyncElapsedMillis

版本 3.4 中的新增功能

initialSyncStartinitialSyncEnd 之间的毫秒数。

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.initialSyncAttempts

版本 3.4 中的新增功能

文档数组,其中每个文档均对应一次初始同步尝试。例如:

"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

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

operationsRetried

所有操作重试的总次数。

totalTimeUnreachableMillis

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

另请参阅 failedInitialSyncAttempts

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.appliedOps

版本 3.4 中的新增功能

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

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.initialSyncOplogStart

版本 3.4 中的新增功能

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

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.initialSyncOplogEnd

版本 3.4 中的新增功能

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

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.syncSourceUnreachableSince

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

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.currentOutageDurationMillis

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

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.totalTimeUnreachableMillis

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

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.databases

版本 3.4 中的新增功能

初始同步期间所克隆数据库的相关详细信息。

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.databases.databasesCloned

版本 3.4 中的新增功能

初始同步时克隆的数据库数量。

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

replSetGetStatus.initialSyncStatus.databases.<dbname>

版本 3.4 中的新增功能

对于每个数据库,这是一份返回该数据库克隆进度信息的文档。

{
"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 指标仅在节点进行初始同步(即处于 STARTUP2 状态)时才可用。

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

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

replSetGetStatus.members[n].stateStr

一个描述 state 的字符串。

replSetGetStatus.members[n].uptime

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

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

replSetGetStatus.members[n].optime

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

3.2 版本的更改

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

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

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

replSetGetStatus.members[n].optimeDurable

版本 3.4 中的新增功能

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

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

  • ts,操作的时间戳

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

replSetGetStatus.members[n].optimeDate

ISODate格式的日期string ,反映该成员应用的oplog中的最后一个条目。 如果这与lastHeartbeat有很大出入,则该成员要么遇到“复制延迟” ,要么自上次更新以来没有任何新操作。 比较该集合的所有成员之间的members.optimeDate

replSetGetStatus.members[n].optimeDurableDate

版本 3.4 中的新增功能

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

replSetGetStatus.members[n].lastAppliedWallTime

版本 5.0.5 中的新增内容

ISODate 格式的日期字符串,反映副本集的此成员在主节点上执行最后一次操作的挂钟时间。

replSetGetStatus.members[n].lastDurableWallTime

版本 5.0.5 中的新增内容

ISODate 格式的日期字符串,反映最后一次写入该成员日志的操作首次应用于主节点的挂钟时间。

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

4.0 版本新增:3.6.6、 3.4.16

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

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

replSetGetStatus.members[n].syncSourceId

4.0 版本新增:3.6.6、 3.4.16

syncSourceId 字段存储 syncSourceHostreplSetGetStatus.members[n]._id 值。

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

replSetGetStatus.members[n].configVersion

configVersion 值是 replica set configuration version

replSetGetStatus.tooStale

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

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

replSetGetStatus.optime

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

replSetGetStatus.optimeDate

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

后退

replSetGetConfig