리플 세트 상태 가져오기
정의
replSetGetStatus
replSetGetStatus
명령은 명령을 처리한 서버의 관점에서 복제본 세트의 상태를 반환합니다. 관리 데이터베이스에서replSetGetStatus
를 실행해야 합니다.mongod
인스턴스가replSetGetStatus
의 복제본 세트 멤버여야 성공적으로 반환됩니다.이 명령으로 제공되는 데이터는 복제본 세트의 다른 멤버가 서버로 전송한 하트비트에 포함된 데이터에서 파생됩니다. 이러한 데이터는 하트비트의 빈도로 인해 몇 초 동안 최신 상태가 아닐 수 있습니다.
팁
mongosh
에서 이 명령은rs.status()
헬퍼 메서드를 통해서도 실행할 수 있습니다.헬퍼 메서드는
mongosh
사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 않을 수 있습니다. 편의가 필요하지 않거나 추가 반환 필드가 필요한 경우 database 명령을 사용합니다.
구문
명령은 다음과 같은 구문을 가집니다:
db.adminCommand( { replSetGetStatus: 1 } )
멤버의 rs.status()
초기 동기화 (예: mongosh
replSetGetStatus
STARTUP2
상태) 중에 멤버에 replSetGetStatus.initialSyncStatus
대해 또는 헬퍼 를 실행하는 경우 명령은 지표를 반환합니다.
멤버가 초기 동기화를 완료하고 다른 상태로 전환한 후에는 replSetGetStatus.initialSyncStatus
지표를 더 이상 사용할 수 없습니다.
예제
출력
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.writeMajorityCount
쓰기 고려
"majority"
를 수행하는 데 필요한 데이터 보유 투표 멤버 수(예: 중재자 아님)입니다. 쓰기는 데이터를 보유한 멤버에게만 적용할 수 있습니다.replSetGetStatus.writeMajorityCount
계산에 대해서는 쓰기 고려에 대한 과반수 계산을 참조하세요.
replSetGetStatus.votingMembersCount
중재자를 포함하여
votes: 1
로 구성된 멤버의 수입니다.
replSetGetStatus.writableVotingMembersCount
votes: 1
로 구성된 데이터 보유 멤버 수입니다(중재자는 포함되지 않음).
replSetGetStatus.optimes
optimes
필드에는 복제 진행률을 검사하는 데 사용되는 optime 이 포함된 문서가 있습니다.optimes
필드에는 다양한 optime에 해당하는 ISODate 형식의 날짜 문자열이 포함되어 있습니다.각 optime 값은 다음을 포함하는 문서입니다.
replSetGetStatus.optimes.readConcernMajorityOpTime
이 멤버의 관점에서 읽기 고려 쿼리를 수행할 수 있는 가장 최근 작업에 관한
"majority"
lastCommittedOpTime
정보입니다. 즉, 쿼리를lastCommittedOpTime
"majority"
수행할 수 있는readConcernMajorityOpTime
가장 최근의 입니다. 은 보다 작거나 같습니다.
replSetGetStatus.electionCandidateMetrics
현재 프라이머리 투표와 관련된 지표입니다.
electionCandidateMetrics
는 예비선거 또는 선거 후보자만 사용할 수 있습니다. 후보자의 경우, 후보자가 투표에서 패배한 후에는 해당 지표를 사용할 수 없습니다.replSetGetStatus.electionCandidateMetrics.electionTerm
새 투표를 호출한 시점의 멤버 투표 수(예:
term
)입니다.
replSetGetStatus.electionCandidateMetrics.lastCommittedOpTimeAtElection
새 투표를 호출한 시점에 이 멤버가 볼 수 있는 가장 최근의
majority-committed optime
입니다.
replSetGetStatus.electionCandidateMetrics.lastSeenOpTimeAtElection
새 투표를 호출한 시점에서 멤버의 가장 최근
applied optime
입니다.
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.initialSyncStatus
이 멤버의 초기 동기화 진행 상황 및 상태에 대한 정보를 제공하는 문서입니다.
중요
가용성
replSetGetStatus.initialSyncStatus
지표는 초기 동기화 중에 멤버에서 실행되는 경우에만 사용할 수 있습니다(예:STARTUP2
상태).replSetGetStatus.initialSyncStatus.failedInitialSyncAttempts
초기 동기화가 실패하고 이 멤버에서 다시 시작해야 했던 횟수입니다.
replSetGetStatus.initialSyncStatus.maxFailedInitialSyncAttempts
멤버가 종료되기 전에 이 멤버에서 초기 동기화를 다시 시작할 수 있는 최대 횟수입니다.
replSetGetStatus.initialSyncStatus.initialSyncStart
이 멤버에 대한 초기 동기화의 시작 타임스탬프입니다.
replSetGetStatus.initialSyncStatus.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작업 재시도에 소요된 총 시간입니다.
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.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].ip
멤버의 확인된 IP 주소입니다.
mongod
가replSetGetStatus.members[n].name
를 IP 주소로 확인할 수 없는 경우 반환 값은 BSON null입니다. 그렇지 않으면 반환되는 값은 확인된 IP 주소의 문자열 표현입니다.
replSetGetStatus.members[n].self
멤버이 현재
mongod
인스턴스 인지 여부를 나타내는 부울입니다.self
필드는 현재 인스턴스에 대한 문서에만mongod
포함되므로 해당 값은 항상true
입니다.
replSetGetStatus.members[n].state
멤버의 복제 상태를 나타내는
0
~10
사이의 정수입니다.
replSetGetStatus.members[n].uptime
replSetGetStatus
명령이 실행되는 멤버의 경우uptime
은 멤버가 온라인 상태였던 시간(초)입니다.다른 멤버의 경우
uptime
는 해당 멤버가replSetGetStatus
명령이 실행된 멤버와 지속적으로 통신한 시간(초)입니다.
replSetGetStatus.members[n].optimeDurable
이 멤버이 해당 저널에 적용한 작업 로그의 마지막 작업에 관한 정보입니다.
optimeDurable
다음을 포함하는 문서를 반환합니다.
replSetGetStatus.members[n].optimeDate
이 멤버가 적용한 oplog 의 마지막 항목이 포함된 ISODate 형식의 날짜 문자열입니다. 와
lastHeartbeat
크게 다른 경우 이 멤버는 '복제 지연'이 발생 하거나 마지막 업데이트 후 새 작업이 없는 것입니다.members.optimeDate
세트의 모든 멤버 간에 를 비교합니다.
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 명령을 처리한 서버가 이 멤버( )로 보낸 하트비트에서 마지막으로 응답을 받은 시간이 포함된 ISODate 형식의 날짜 및
members[n]
시간입니다. 이 값을 및 필드의lastHeartbeatRecv
값과 비교하여 이러한date
복제본 세트 멤버 간의 지연 시간을 추적합니다.이 값은
replSetGetStatus.members[n].self
로 지정된 서버 이외의 복제본 세트 멤버에 대해서만 사용할 수 있습니다.
replSetGetStatus.members[n].lastHeartbeatRecv
replSetGetStatus 명령을 처리한 서버가 이 멤버( )로부터 하트비트 요청을 마지막으로 수신한 시간이 포함된 ISODate 형식의 날짜 및
members[n]
시간입니다. 이 값을 및 필드의date
lastHeartbeat
값과 비교하여 이러한 복제본 세트 멤버 간의 지연 시간을 추적합니다.이 값은
replSetGetStatus.members[n].self
로 지정된 서버 이외의 복제본 세트 멤버에 대해서만 사용할 수 있습니다.
replSetGetStatus.members[n].lastHeartbeatMessage
마지막 하트비트에 추가 메시지가 포함된 경우
lastHeartbeatMessage
에는 해당 메시지의 문자열 표현이 포함됩니다.
replSetGetStatus.members[n].pingMs
pingMs
는 왕복 패킷이 원격 멤버와 로컬 인스턴스 사이를 이동하는 데 걸리는 시간을 밀리초(ms)로 나타냅니다.rs.status()
데이터를 반환하는 멤버에는 이 값이 나타나지 않습니다.
replSetGetStatus.members[n].syncSourceHost
syncSourceHost
필드에는 이 인스턴스가 동기화되는 멤버의 호스트 이름이 있습니다.replSetGetStatus.members[n]
가 프라이머리인 경우syncSourceHost
은 빈 문자열이고syncSourceId
-1
입니다.
replSetGetStatus.members[n].syncSourceId
syncSourceId
필드는syncSourceHost
의replSetGetStatus.members[n]._id
값을 보유합니다replSetGetStatus.members[n]
가 프라이머리인 경우syncSourceHost
은 빈 문자열이고syncSourceId
-1
입니다.
replSetGetStatus.members[n].configVersion
configVersion
값은replica set configuration version
입니다.
replSetGetStatus.tooStale
복제본 세트 멤버가 프라이머리의 oplog보다 너무 뒤쳐져
RECOVERING
상태에 머물러 있음을 나타내는 부울입니다. 이 필드는 해당 값이true
인 경우에만replSetGetStatus
출력에 포함됩니다.
ok
상태 필드, operationTime
필드 및 $clusterTime
필드에 대한 자세한 내용은 응답을 참조하세요.