文档菜单
文档首页
/
MongoDB 手册
/ / /

replSetGetStatus

本页

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

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

必须将 mongod 实例配置为副本集成员,以便replSetGetStatus 能够成功返回。

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

提示

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

辅助方法对 mongosh 用户很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要方便或需要额外的返回字段的情况下,请使用数据库命令。

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

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

重要

此命令不支持在 M0、M2 和 M5 集群中。有关更多信息,请参阅 不受支持的命令。

此命令具有以下语法

db.adminCommand(
{
replSetGetStatus: 1
}
)

如果在成员的初始同步(即处于初始同步(例如,STARTUP2状态)期间)运行replSetGetStatusmongosh辅助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 设置中。这与 _idrs.conf() 中的值相同。

replSetGetStatus.date

按照 ISODate 格式表示的日期和时间,包含处理 replSetGetStatus 命令的服务器当前时间。将此与 replSetGetStatus.members[n].lastHeartbeat 的值进行比较,以找到此服务器与其他副本集成员之间的操作延迟。

replSetGetStatus.myState

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

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

满足写入关注(即“majority”)所需的数据承载投票成员(即非仲裁员)的数量。只能将写入应用于数据承载成员。

有关 replSetGetStatus.writeMajorityCount 的计算,请参阅 计算写入关注的大多数数量。

replSetGetStatus.votingMembersCount

配置了 votes: 1 的成员数量,包括仲裁员。

replSetGetStatus.writableVotingMembersCount

配置了votes: 1(此值不包括仲裁者)的数据成员数量。

replSetGetStatus.optimes

optimes字段包含一个文档,用于检查复制进度。该optimes字段包括各种optimes对应的ISODate格式的日期字符串。

每个optime值都是一个包含以下内容的文档

  • ts,操作的时间戳

  • t,操作最初在主节点上生成的term

replSetGetStatus.optimes.lastCommittedOpTime

从该成员的角度看,关于已写入大多数副本集成员的最新操作的详细信息。

replSetGetStatus.optimes.lastCommittedWallTime

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

replSetGetStatus.optimes.readConcernMajorityOpTime

从该成员的角度来看,关于最近一次可以满足读取关注"majority"查询的信息;即满足lastCommittedOpTime的最新的"majority"查询。 readConcernMajorityOpTime要么小于或等于lastCommittedOpTime

replSetGetStatus.optimes.readConcernMajorityWallTime

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

replSetGetStatus.optimes.appliedOpTime

从该成员的角度来看,关于已应用于副本集成员的最新操作的详细信息。

replSetGetStatus.optimes.lastAppliedWallTime

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

replSetGetStatus.optimes.durableOpTime

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

replSetGetStatus.optimes.lastDurableWallTime

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

replSetGetStatus.optimes.lastWrittenWallTime

此成员操作日志中最最近一条条目写入的ISODate格式日期字符串。

新增在版本8.0.

replSetGetStatus.optimes.writtenOpTime

此成员操作日志中最最近一条条目写入的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

新选出的主节点的追赶过程的目标 opTime。只有当新选出的主节点达到目标追赶 opTime 时,它才能开始接受写入。

replSetGetStatus.electionCandidateMetrics.numCatchUpOps

新选出的主节点在成功完成同步过程时应用的操作数量。

replSetGetStatus.electionCandidateMetrics.newTermStartDate

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

replSetGetStatus.electionCandidateMetrics.wMajorityWriteAvailabilityDate

在选举后,副本集的写关注 "majority" 可用的时间(即新任期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值是一个包含时间戳ts)和术语(t)的文档。

replSetGetStatus.electionParticipantMetrics.lastWrittenOpTimeAtElection

在最近一次选举时写入此成员oplog的最新条目的optime

新增在版本8.0.

replSetGetStatus.electionParticipantMetrics.maxAppliedOpTimeInSet

此成员已知的最新的任何副本集成员的最新已应用optime。

replSetGetStatus.electionParticipantMetrics.maxWrittenOpTimeInSet

已知于该成员的,写入任何副本集成员的oplog的最近条目的optime。

新增在版本8.0.

replSetGetStatus.electionParticipantMetrics.priorityAtElection

选举时成员的优先级

replSetGetStatus.electionParticipantMetrics.newTermStartDate

当选主节点术语开始的时间;这对应于主节点将其oplog中的新术语条目写入时,而不是条目被添加(即复制)到副节点的oplog时。

此字段仅适用于次要成员。对于主节点,请参阅replSetGetStatus.electionCandidateMetrics.newTermStartDate

replSetGetStatus.electionParticipantMetrics.newTermAppliedDate

此从节点应用 新任期 条目的日期和时间。

该字段仅适用于从节点成员。

replSetGetStatus.initialSyncStatus

一个文档,提供有关此成员 初始同步 进度和状态的详细信息。

重要

可用性

replSetGetStatus.initialSyncStatus 指标仅在成员处于初始同步期间运行时可用(即 STARTUP2 状态)。

replSetGetStatus.initialSyncStatus.failedInitialSyncAttempts

在此成员上,初始同步失败并需要重新启动的次数。

replSetGetStatus.initialSyncStatus.maxFailedInitialSyncAttempts

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

replSetGetStatus.initialSyncStatus.initialSyncStart

此成员的初始同步开始时间戳。

replSetGetStatus.initialSyncStatus.initialSyncEnd

此成员的初始同步的结束时间戳。

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
初始同步尝试的持续时间(毫秒)。
status
初始同步尝试的退出状态。
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

上一个optime,在之前的备份游标中可用。

仅在基于文件复制的初始同步时出现此字段。

replSetGetStatus.initialSyncStatus.currentOplogEnd

当前optime保证在当前的备份游标中可用。

仅在基于文件复制的初始同步时出现此字段。

replSetGetStatus.initialSyncStatus.syncSourceLastApplied

在开始此 备份游标 之前,同步源上应用的最后更新 操作时间

仅在基于文件复制的初始同步时出现此字段。

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地址。如果无法将 mongodreplSetGetStatus.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

描述状态的字符串。

replSetGetStatus.members[n].uptime

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

对于其他成员,uptime是该成员与执行replSetGetStatus命令的成员持续通信的秒数。

replSetGetStatus.members[n].optime

关于该成员已应用的操作日志中最后一条操作的详细信息。

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

  • ts,从时间戳中获取到应用于副本集成员的最后一个操作的操作日志

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

replSetGetStatus.members[n].optimeDurable

关于此成员对其日志已应用的最后一条操作日志的信息。

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

  • ts,操作的时间戳

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

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

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

replSetGetStatus.members[n].electionDate

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

replSetGetStatus.members[n].lastHeartbeat

包含处理 replSetGetStatus 命令的服务器收到来自心跳信息的最后时间的 ISODate 格式的日期和时间。将此值与 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 字段存储了与此实例同步的成员的域名。

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

返回

replSetGetConfig