정의
sh.status()mongos인스턴스에서 실행하면 샤딩 구성에 대한 형식화된 보고서와 샤딩된 클러스터의 기존 청크에 관한 정보를 출력합니다. 기본 동작은 총 청크 수가 20보다 크거나 같은 경우 자세한 청크 정보를 억제합니다.sh.status()메서드에는 다음과 같은 매개 변수가 있습니다.Parameter유형설명verbose부울
선택 사항. 상세도 수준을 결정합니다.
true면 메서드가 표시됩니다.20개 이상의 청크가 있는 경우에도 샤드의 청크 분포와 각 샤드의 청크 수에 대한 전체 세부 정보입니다.
활성 mongos 인스턴스의 세부 정보입니다.
false면 메서드가 표시됩니다.청크가 20개 미만인 경우에만 샤드의 청크 분포에 대한 전체 세부 정보입니다. 청크가 20개 이상인 경우 메서드는 대신 각 샤드의 청크 수만 표시하는
too many chunks to print ...메시지를 반환합니다.활성 mongos 인스턴스의 버전과 수만 표시됩니다.
기본 상세 정보 값은
false입니다.출력에는 각 샤딩된 컬렉션 에 대한 데이터 분포 지표 제공하는
shardedDataDistribution섹션도 포함됩니다. 이 데이터는$shardedDataDistribution집계 단계의 출력과 동일합니다.
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
- MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
중요
이 명령은 M0 및 Flex 클러스터에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
출력 예시
샤딩 버전 섹션에는 구성 데이터베이스에 대한 정보가 표시됩니다.
--- Sharding Status --- sharding version: { "_id" : <num>, "minCompatibleVersion" : <num>, "currentVersion" : <num>, "clusterId" : <ObjectId> }
샤드 섹션에는 샤드에 대한 정보가 나열됩니다. 각 샤드에 대해 이 섹션에는 이름, 호스트, 관련 태그(있는 경우)가 표시됩니다.
shards: { "_id" : <shard name1>, "host" : <string>, "tags" : [ <string> ... ], "state" : <num> } { "_id" : <shard name2>, "host" : <string>, "tags" : [ <string> ... ], "state" : <num> } ...
활성 인스턴스 섹션에는 mongos 기본값 mongos 으로 지난 60 초 이내에 활성 상태인 인스턴스의 버전 및 수에 대한 정보가 표시됩니다.
active mongoses: <version> : <num>
매개 변수를 true로 설정하여 메서드를 실행 verbose 하면 활성 mongos 인스턴스 섹션에 추가 정보가 표시됩니다.
active mongoses: { "_id" : "<hostname:port>", "advisoryHostFQDNs" : [ "<name>" ], "mongoVersion" : <string>, "ping" : <ISODate>, "up" : <long>, "waiting" : <boolean> }
자동 분할은 자동 분할의 활성화 여부에 대한 정보를 표시합니다.
autosplit: Currently enabled: <yes|no>
밸런서 섹션에는 밸런서의 상태에 대한 정보가 나열됩니다. 이를 통해 현재 밸런서 작업에 대한 통찰력을 얻을 수 있으며, 분할되지 않은 샤딩된 클러스터의 문제를 해결할 때 유용할 수 있습니다.
balancer: Currently enabled: yes Currently running: yes Collections with active migrations: config.system.sessions started at Fri May 15 2020 17:38:12 GMT-0400 (EDT) Failed balancer rounds in last 5 attempts: 0 Migration Results for the last 24 hours: 416 : Success 1 : Failed with error 'aborted', from shardA to shardB
데이터베이스 섹션에는 데이터베이스에 대한 정보가 나열됩니다. 데이터베이스 이름과 각 데이터베이스의 프라이머리 샤드가 표시됩니다.
databases: { "_id" : <dbname1>, "primary" : <string>, "partitioned" : <boolean>, "version": <document> } { "_id" : <dbname2>, "primary" : <string>, "partitioned" : <boolean>, "version": <document> } ...
샤드 컬렉션 섹션은 샤딩된 컬렉션 의 샤딩 세부 정보에 대한 정보를 제공합니다. 각 샤딩된 컬렉션 에 대해 이 섹션에는 샤드 키, 샤드 당 청크 수, 샤드 간 청크 분포[],1 샤드 키 범위 에 대한 태그를 지정하다 정보(있는 경우)가 표시됩니다.
<dbname>.<collection> shard key: { <shard key> : <1 or hashed> } unique: <boolean> balancing: <boolean> allowMigrations: <boolean> chunks: <shard name1> <number of chunks> <shard name2> <number of chunks> ... { <shard key>: <min range1> } -->> { <shard key> : <max range1> } on : <shard name> <last modified timestamp> { <shard key>: <min range2> } -->> { <shard key> : <max range2> } on : <shard name> <last modified timestamp> ... tag: <tag1> { <shard key> : <min range1> } -->> { <shard key> : <max range1> } ...
샤드 데이터 배포 섹션에는 각 샤딩된 컬렉션 에 대한 데이터 배포 정보가 표시됩니다.
shardedDataDistribution: [ { "ns" : "<database>.<collection>", "shards" : [ { "shardName" : "<shard name>", "numOrphanedDocs" : <num>, "numOwnedDocuments" : <num>, "ownedSizeBytes" : <num>, "orphanedSizeBytes" : <num> } ] } ]
출력 필드
샤딩 버전
sh.status.sharding-version._id는 버전 세부 정보에 대한
_id식별자입니다.
sh.status.sharding-version.minCompatibleVersion는 config 서버 의 최소 호환
minCompatibleVersion버전입니다.6.2 이전의 MongoDB 버전에서는 이 필드가
config.version컬렉션에 포함되지만mongosh2.0.0 이상에서는sh.status()출력에 필드가 반환되지 않습니다. MongoDB 6.2부터 이 필드는 제거되며mongosh버전이나 다른 클라이언트 애플리케이션에서 반환되지 않습니다. 대신 버전 정보를 얻으려면 기능 호환성 버전 (fcv) 을 참조하십시오.
sh.status.sharding-version.currentVersion는 config 서버 의 현재
currentVersion버전입니다.6.2 이전의 MongoDB 버전에서는 이 필드가
config.version컬렉션에 포함되지만mongosh2.0.0 이상에서는sh.status()출력에 필드가 반환되지 않습니다. MongoDB 6.2부터 이 필드는 제거되며mongosh버전이나 다른 클라이언트 애플리케이션에서 반환되지 않습니다. 대신 버전 정보를 얻으려면 기능 호환성 버전 (fcv) 을 참조하십시오.
sh.status.sharding-version.clusterId는 샤딩된 클러스터 에 대한
clusterIdID입니다.
활성 mongos 인스턴스
sh.status.active-mongosesverbose이(가) 인 경우falsesh.status.active-mongoses은(는)mongos활성 인스턴스의mongos버전과 개수를mongos나열합니다. 활성 인스턴스는 지난 60 초 이내에 핑된 인스턴스입니다.이(가)
verbose인true경우sh.status.active-mongoses은(는) 다음 필드를 포함하는 각 활성 인스턴스 에 대한 문서 반환합니다.mongos필드데이터 유형설명_id문자열
mongos실행 중인 호스트 이름 및 포트입니다. 형식은_id<hostname>:<port>로 지정됩니다.advisoryHostFQDNs문자열 배열
mongos의 정규화된 도메인 이름 (FQDN) 의 배열.created날짜
mongos가 시작된 시간입니다.버전 5.2에 추가 되었습니다.
mongoVersion문자열
mongos가 실행 중인 MongoDB 버전입니다.ping날짜
upNumberLong
마지막 핑을 기준으로
mongos가 작동한 시간 (초) 입니다.waiting부울
이 필드는 항상
true이며 이전 버전과의 호환성을 위해서만 포함됩니다.active mongoses: { "_id" : "<hostname:port>", "advisoryHostFQDNs" : [ "<name>" ], "created" : <ISODate>, "mongoVersion" : <string>, "ping" : <ISODate>, "up" : <long>, "waiting" : <boolean> } ...
자동 분할
sh.status.autosplitsh.status.autosplit현재 자동 분할이 활성화되어 있는지 여부를 나타냅니다.
참고
MongoDB 6.0.3부터 자동 청크 분할이 수행되지 않습니다. 이는 밸런싱 정책 개선 때문입니다. 자동 분할 명령이 여전히 존재하지만 작업을 수행하지 않습니다.
6.1 이전 MongoDB 버전에서는 다음과 같습니다.
balancerStart2} 명령과mongo셸 도우미 메서드sh.startBalancer()및 는 샤딩된 클러스터에 대한 자동 분할도 활성화합니다.sh.setBalancerState(true)밸런서가 활성화되었을 때 자동 분할을 비활성화하려면
sh.disableAutoSplit()를 사용할 수 있습니다.balancerStop2} 명령과mongo셸 도우미 메서드 및sh.stopBalancer()sh.setBalancerState(false)는 샤딩된 클러스터에 대한 자동 분할도 비활성화합니다.밸런서가 비활성화되었을 때 자동 분할을 활성화하려면
sh.enableAutoSplit()를 사용할 수 있습니다.
mongo sh.enableBalancing(namespace) 0}sh.disableBalancing(namespace) 메서드 및 은 자동 분할에 영향을 주지 않습니다.
자동 병합
sh.status.automergeAutoMerger가 활성화되어 있는지 여부를 나타냅니다.
참고
automerge섹션은 AutoMerger를 명시적으로 활성화하거나 비활성화할 때만 나타납니다. AutoMerger는 기본적으로 활성화되어 있습니다.
샤드
sh.status.shards._id는 샤드 의 이름을
_id표시합니다.
sh.status.shards.host는 샤드
host의 호스팅하다 위치 표시합니다.
sh.status.shards.tags는
tags샤드 에 대한 모든 태그를 표시합니다. 이 필드 샤드 태그가 있는 경우에만 표시됩니다.
sh.status.shards.state에 다음이
state표시됩니다.0샤드가 샤드를 인식하지 못하는 경우.1샤드가 샤드를 인식하는 경우.
밸런서
참고
MongoDB 6.0.3부터 자동 청크 분할이 수행되지 않습니다. 이는 밸런싱 정책 개선 때문입니다. 자동 분할 명령이 여전히 존재하지만 작업을 수행하지 않습니다.
6.1 이전 MongoDB 버전에서는 다음과 같습니다.
balancerStart2} 명령과mongo셸 도우미 메서드sh.startBalancer()및 는 샤딩된 클러스터에 대한 자동 분할도 활성화합니다.sh.setBalancerState(true)밸런서가 활성화되었을 때 자동 분할을 비활성화하려면
sh.disableAutoSplit()를 사용할 수 있습니다.balancerStop2} 명령과mongo셸 도우미 메서드 및sh.stopBalancer()sh.setBalancerState(false)는 샤딩된 클러스터에 대한 자동 분할도 비활성화합니다.밸런서가 비활성화되었을 때 자동 분할을 활성화하려면
sh.enableAutoSplit()를 사용할 수 있습니다.
mongo sh.enableBalancing(namespace) 0}sh.disableBalancing(namespace) 메서드 및 은 자동 분할에 영향을 주지 않습니다.
sh.status.balancer.currently-enabledcurrently-enabled은(는) 밸런서 현재 샤딩된 클러스터 에서 활성화되어 있는지 여부를 나타냅니다.
sh.status.balancer.currently-runningcurrently-running는 밸런서 현재 실행, 따라서 현재 클러스터 를 밸런싱하고 있는지 여부를 나타냅니다.
sh.status.balancer.collections-with-active-migrationscollections-with-active-migrations는 마이그레이션이 활성화된 컬렉션의 이름을 나열하고 마이그레이션 이 시작된 시점을 지정합니다. 활성 마이그레이션이 없는 경우 이 필드sh.status()출력에 나타나지 않습니다.
sh.status.balancer.failed-balancer-rounds-in-last-5-attemptsfailed-balancer-rounds-in-last-5-attempts는 지난 5번의 시도 중 실패한 밸런서 라운드의 수를 표시합니다. 청크 마이그레이션 실패하면 밸런서 라운드가 실패합니다.
sh.status.balancer.last-reported-errorlast-reported-error는 가장 최근의 밸런서 오류 메시지를 나열합니다. 오류가 없는 경우 이 필드sh.status()출력에 나타나지 않습니다.
sh.status.balancer.time-of-reported-errortime-of-reported-error는 가장 최근에 보고된 오류의 날짜와 시간을 제공합니다.
sh.status.balancer.migration-results-for-the-last-24-hoursmigration-results-for-the-last-24-hours는 지난 24 시간 동안의 마이그레이션 수와 실패한 마이그레이션의 오류 메시지를 표시합니다. 최근 마이그레이션이 없는 경우 는migration-results-for-the-last-24-hours를No recent migrations표시합니다.migration-results-for-the-last-24-hours에는 밸런서 에 의해 시작되지 않은 마이그레이션을 포함한 모든 마이그레이션이 포함됩니다.
Databases
sh.status.databases._id_id는 데이터베이스 의 이름을 표시합니다.
sh.status.databases.partitionedMongoDB 6.0 및 기능 호환성 버전(fCV) 6.0부터
partitioned플래그는 이전 버전과의 역호환성만 유지합니다. 기본적으로 모든 데이터베이스는partitioned값에 관계없이 샤딩을 활성화됩니다.
sh.status.databases.version는 데이터베이스 의 버전 정보를
version표시합니다.{ "uuid" : UUID("cc250b66-8638-49f7-a2e8-c6f1220b9d7a"), "lastMod" : 1 } where:
uuid는 데이터베이스 식별자입니다.lastMod은 데이터베이스 버전입니다.
샤딩된 Collection
sh.status.databases.<collection>.shard-key는 샤드 키 사양 문서
shard-key표시합니다.
sh.status.databases.<collection>.unique는 MongoDB 샤드 키 값에 고유성을 적용하는지 여부(즉, 기본 샤드 키 인덱스 고유한지 여부)를
unique표시합니다.
sh.status.databases.<collection>.balancing밸런서 가 컬렉션 의 밸런싱을 수행할 수 있는지 여부를 표시합니다. 밸런서 가 활성화되어 있고 이 상태가
true을 반환하면 밸런서 는 이 컬렉션 을 밸런싱 작업에 포함합니다. 상태가false을 반환하면 밸런서 가 이 컬렉션 의 데이터 밸런싱을 수행하지 않음 을 나타냅니다.
sh.status.databases.<collection>.allowMigrations컬렉션에 대한 마이그레이션 허용 여부를 표시합니다.
true인 경우, 컬렉션은 마이그레이션을 허용합니다.false인 경우, 컬렉션이 마이그레이션을 허용하지 않아 이 컬렉션에 대한 청크 마이그레이션이 불가능합니다.sh.enableMigrations()및sh.disableMigrations()를 사용하여 이 설정을 제어합니다.
sh.status.databases.<collection>.chunks는
chunks모든 샤드와 각 샤드 에 있는 청크 수를 나열합니다.
sh.status.databases.<collection>.chunk-details는
chunk-details청크 []의1 세부 정보를 나열합니다.청크를 정의하는 샤드 키 값의 범위입니다,
청크가 있는 샤드와
청크의 마지막 수정 타임스탬프입니다.
sh.status.databases.<collection>.tagtag은(는) 샤드 키 값 범위 와 연결된 태그의 세부 정보를 나열합니다.
샤딩된 데이터 배포
sh.status.shardedDataDistribution클러스터 의 각 샤딩된 컬렉션 에 대한 데이터 분포 지표 제공하는 문서 배열 입니다. 데이터는
$shardedDataDistribution집계 단계의 출력과 동일합니다.
sh.status.shardedDataDistribution.shards.orphanedSizeBytes문서가 압축 해제되어 있을 때 샤드 에 있는 고아 문서의 예상 크기(바이트)입니다.
| [1] | (,1 2) 샤딩된 컬렉션 섹션은 총 청크 수가 미만인 경우 기본값 으로 청크 정보를 20 표시합니다.20 청크가 개 이상일 때 정보를 sh.status() 표시하려면 매개 변수를(즉,)로 설정하다 메서드를 호출합니다.verbose truesh.status(true) |