Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

replSetGetStatus

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 예시
  • 출력
replSetGetStatus

replSetGetStatus 명령은 명령을 처리한 서버의 관점에서 복제본 세트의 상태를 반환합니다. replSetGetStatus관리 데이터베이스에서 실행해야 합니다.

성공적으로 반환하려면 mongod 인스턴스가 replSetGetStatus의 복제본 세트 구성원이어야 합니다.

이 명령으로 제공되는 데이터는 복제본 세트의 다른 멤버가 서버로 전송한 하트비트에 포함된 데이터에서 파생됩니다. 이러한 데이터는 하트비트의 빈도로 인해 몇 초 동안 최신 상태가 아닐 수 있습니다.

mongosh에서 이 명령을 rs.status() 헬퍼 메서드를 통해서도 실행할 수 있습니다.

헬퍼 메서드는 mongosh 사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

중요

이 명령은 M0, M2 및 M5 클러스터에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.

명령은 다음과 같은 구문을 가집니다:

db.adminCommand(
{
replSetGetStatus: 1
}
)

replSetGetStatus 또는 mongosh 헬퍼 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.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)
},
"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

replSetGetStatus 명령을 처리한 서버에 따라 현재 시간을 포함하는 ISODate 형식의 날짜 및 시간입니다. 이를 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

쓰기 고려 "majority"를 수행하는 데 필요한 데이터 보유 투표 멤버 수(예: 중재자 아님)입니다. 쓰기는 데이터를 보유한 멤버에게만 적용할 수 있습니다.

replSetGetStatus.writeMajorityCount 계산에 대해서는 쓰기 고려에 대한 과반수 계산을 참조하세요.

replSetGetStatus.votingMembersCount

중재자를 포함하여 votes: 1로 구성된 멤버의 수입니다.

replSetGetStatus.writableVotingMembersCount

votes: 1로 구성된 데이터 보유 멤버 수입니다(중재자는 포함되지 않음).

replSetGetStatus.optimes

optimes 필드에는 복제 진행률을 검사하는 데 사용되는 optime을 포함한 문서가 있습니다. optimes 필드에는 다양한 최적화 항목에 해당하는 ISODate 형식의 날짜 문자열이 포함됩니다.

각 optime 값은 다음을 포함하는 문서입니다.

  • ts, 작업의 타임스탬프입니다.

  • t작업이 원래 프라이머리에서 생성된 term입니다.

replSetGetStatus.optimes.lastCommittedOpTime

이 멤버의 관점에서 볼 때 대부분의 복제본 세트 멤버에 기록된 가장 최근의 작업에 관한 정보입니다.

replSetGetStatus.optimes.lastCommittedWallTime

lastCommittedOpTime에 해당하는 ISODate 형식의 날짜 문자열입니다.

replSetGetStatus.optimes.readConcernMajorityOpTime

이 구성원의 관점에서 읽기 고려 "majority" 쿼리를 수행할 수 있는 가장 최근 작업에 관한 정보입니다. 즉, "majority" 쿼리를 수행할 수 있는 가장 최근 lastCommittedOpTime입니다. readConcernMajorityOpTime(이)가 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

새로 선출된 프라이머리의 따라잡기 프로세스를 위한 목표 optime입니다. 새로 선택된 프라이머리가 목표 따라잡기 OpTime에 도달해야만 쓰기 수락을 시작할 수 있습니다.

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입니다.

optime 값은 타임스탬프(ts)와 텀(t)을 포함하는 문서입니다.

replSetGetStatus.electionParticipantMetrics.maxAppliedOpTimeInSet

이 멤버가 알고 있는 이 복제본 세트의 모든 멤버에 대해 가장 최근에 적용된 optime입니다.

optime 값은 타임스탬프(ts)와 텀(t)을 포함하는 문서입니다.

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

이 멤버에 대한 초기 동기화의 종료 타임스탬프입니다.

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

동기화 원본에 연결할 수 없게 된 날짜 및 시간입니다.

현재 초기 동기화 중에 if 동기화 소스를 사용할 수 없는 경우에만 표시됩니다.

replSetGetStatus.initialSyncStatus.currentOutageDurationMillis

동기화 소스를 사용할 수 없었던 시간(밀리초)입니다.

현재 초기 동기화 중에 if 동기화 소스를 사용할 수 없는 경우에만 표시됩니다.

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

백업 커서가 시작되기 전에 동기화 소스에 적용된 마지막 업데이트의 optime입니다.

이 필드는 파일 복사 기반 초기 동기화를 사용할 때만 표시됩니다.

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

멤버의 복제 상태를 나타내는 0~10 사이의 정수입니다.

replSetGetStatus.members[n].stateStr

state를 설명하는 문자열입니다.

replSetGetStatus.members[n].uptime

replSetGetStatus 명령이 실행되는 노드의 경우 uptime은 노드가 온라인 상태였던 시간(초)입니다.

다른 노드의 경우 uptime은 해당 노드가 replSetGetStatus 명령이 실행된 노드와 지속적으로 통신했던 시간(초)입니다.

replSetGetStatus.members[n].optime

이 멤버가 적용한 작업 로그의 마지막 작업에 대한 정보입니다.

optime 다음을 포함하는 문서를 반환합니다.

  • tsoplog에서 복제본 세트의 이 멤버에 적용한 마지막 작업의 타임스탬프입니다.

  • t마지막으로 적용된 작업이 원래 프라이머리에서 생성된 term입니다.

replSetGetStatus.members[n].optimeDurable

이 멤버이 해당 저널에 적용한 작업 로그의 마지막 작업에 관한 정보입니다.

optimeDurable 다음을 포함하는 문서를 반환합니다.

  • ts, 작업의 타임스탬프입니다.

  • t이 작업이 원래 프라이머리에서 생성된 term입니다.

replSetGetStatus.members[n].optimeDate

이 멤버가 적용한 oplog의 마지막 항목이 포함된 ISODate 형식의 날짜 문자열입니다. 이것이 lastHeartbeat와 크게 다른 경우 이 노드는 '복제 지연'을 경험했거나 또는 마지막 업데이트 이후 새로운 작업이 없었습니다. 세트의 모든 노드 간에 members.optimeDate를 비교합니다.

replSetGetStatus.members[n].optimeDurableDate

이 멤버가 저널에 적용한 oplog의 마지막 항목이 포함된 ISODate 형식의 날짜 문자열입니다.

replSetGetStatus.members[n].lastAppliedWallTime

복제본 세트의 이 노드가 적용한 마지막 작업이 프라이머리 노드에 적용된 벽시계 시간을 반영하는 ISODate 형식의 날짜 문자열입니다.

replSetGetStatus.members[n].lastDurableWallTime

이 멤버의 저널에 마지막으로 기록된 작업이 프라이머리 노드에 처음 적용된 벽시계 시간을 반영하는 IsoDate 형식의 날짜 문자열입니다.

replSetGetStatus.members[n].electionTime

현재 프라이머리의 경우, oplog의 투표 타임스탬프에 관한 정보입니다. 투표에 대한 자세한 내용은 복제본 세트 고가용성을 참조하세요.

replSetGetStatus.members[n].electionDate

현재 프라이머리의 경우, 투표 날짜가 포함된 IsoDate 형식의 날짜 문자열입니다. 투표에 대한 자세한 내용은 복제본 세트 고가용성을 참조하세요.

replSetGetStatus.members[n].lastHeartbeat

replSetGetStatus 명령을 처리한 서버가 이 멤버(members[n])로 보낸 하트비트에서 마지막으로 응답을 받은 시간이 포함된 ISODate 형식의 날짜 및 시간입니다. 이 값을 datelastHeartbeatRecv 필드 값과 비교하여 이러한 복제본 세트 멤버 간의 지연 시간을 추적합니다.

이 값은 replSetGetStatus.members[n].self로 지정된 서버 이외의 복제본 세트 멤버에만 사용할 수 있습니다.

replSetGetStatus.members[n].lastHeartbeatRecv

replSetGetStatus 명령을 처리한 서버가 이 멤버(members[n])로부터 하트비트 요청을 마지막으로 수신한 시간이 포함된 ISODate 형식의 날짜 및 시간입니다. 이 값을 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]가 기본 string인 경우 syncSourceHost는 빈 string이고 syncSourceId -1입니다.

replSetGetStatus.members[n].syncSourceId

syncSourceId 필드에는 syncSourceHostreplSetGetStatus.members[n]._id 값이 들어 있습니다.

replSetGetStatus.members[n]가 기본 string인 경우 syncSourceHost는 빈 string이고 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

이 페이지의 내용