정의
shardDrainingStatus밸런서 여전히 청크를 클러스터 의 다른 샤드로 이동시키고 있는지 또는 프로세스 완료되었는지 여부를 나타내는 배출 샤드 의 상태를 표시합니다.
이 명령은 샤드 존재하지 않으면 오류를 반환하고, 그렇지 않으면 배출 작업의 상태를 반환합니다.
샤드 배출 시작하려면
startShardDraining명령을 참조하세요.샤드 배출 중지하려면
stopShardDraining명령을 참조하세요.드레이닝된 샤드 제거 하려면
commitShardRemoval명령을 참조하세요.팁
In
mongosh, this command can also be run through thesh.shardDrainingStatus()and.헬퍼 메서드는
mongosh사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 않을 수 있습니다. 편의가 필요하지 않거나 추가 반환 필드가 필요한 경우 데이터베이스 명령 사용합니다.버전 8.3에 추가 되었습니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
참고
이 명령은 MongoDB Atlas 에서 지원되지 않습니다. Atlas cluster 에 샤드를 추가하거나 제거 하려면 Modify your Atlas Sharded Cluster(Atlas 샤드 클러스터 수정)를 참조하세요.
구문
명령은 다음과 같은 구문을 가집니다:
db.adminCommand( { shardDrainingStatus: <shard> } )
출력 필드
이 명령은 다음 출력을 반환합니다.
필드 | 유형 | 설명 |
|---|---|---|
| 문자열 | 밸런서 에서 수행 중인 현재 배출 작업을 제공합니다. |
| 문자열 | 배출 작업의 상태를 제공합니다. |
| 문자열 | 배출 샤드 나타냅니다. |
| 문서 | 샤드 를 배출하기 위해 밸런서 수행해야 하는 나머지 작업을 표시합니다. |
| long | 샤드 에 아직 남아 있는 청크의 수를 나타냅니다. |
| long | 샤드 에 아직 남아 있는 데이터베이스의 수를 나타냅니다. |
| long | 샤드 에 아직 남아 있는 큰 청크의 수를 나타냅니다. |
| long | 샤드 에 남아 있는 컬렉션의 수를 나타냅니다. |
| long | 제거 진행 중인 샤드에 남은 예상 바이트 수. |
| 문자열 | 사용자에게 추가 메시지를 제공합니다. |
| 배열 | 배출 샤드 프라이머리 샤드로 사용하는 데이터베이스를 나타냅니다. 클러스터에서 샤드를 제거하려면 먼저 |
| 배열 | 배출 샤드 에 저장된 샤딩되지 않은 컬렉션을 나타냅니다. 클러스터에서 샤드를 제거하려면 먼저 |
| long | 제거 중인 샤드 에 남아 있는 보류 중인 삭제 범위 의 수입니다. |
| 문자열 | 제거 중인 샤드에서 첫 번째로 비어 있지 않은 컬렉션입니다. 밸런서가 모든 청크 및 데이터베이스를 config 서버에서 이동한 후 |
행동
액세스 요구 사항
authorization 을(를) 활성화한 경우 clusterManager 역할 또는 removeShard 작업을 포함하는 역할이 있어야 합니다.
데이터베이스 마이그레이션 요구 사항
샤딩된 클러스터 의 각 데이터베이스 에는 프라이머리 샤드 가 있습니다. 드레이닝하려는 샤드 클러스터 데이터베이스 중 하나의 프라이머리 이기도 한 경우, 샤드 에서 모든 데이터를 마이그레이션한 후 데이터베이스를 새 샤드 로 수동으로 이동해야 합니다. movePrimary 명령 및 샤드 클러스터에서 샤드 제거 를 참조하세요.
컬렉션 마이그레이션 요구 사항
샤딩되지 않은 컬렉션은 개별 샤드에 저장됩니다. 이러한 컬렉션 중 하나가 제거 하려는 샤드 에 있는 경우 먼저 컬렉션 다른 샤드 로 마이그레이션 해야 합니다.
샤딩되지 않은 컬렉션 마이그레이션 하려면 moveCollection 명령을 참조하세요.
예시
샤드 배출 시작하려면 db.adminCommand() 메서드를 사용하여 startShardDraining 명령을 실행 .
db.adminCommand( { startShardDraining: "shard04" } )
배출 작업의 상태를 확인하려면 shardDrainingStatus 명령을 사용합니다.
db.adminCommand( { shardDrainingStatus: "shard04" } )
{ msg: "draining ongoing", state: "ongoing", remaining: { chunks: Long(2), dbs: Long(2), jumboChunks: Long(0), collectionsToMove: Long(2) }, shard: "shard04", note: "you need to call moveCollection for collectionsToMove and afterwards movePrimary for the dbsToMove", dbsToMove: [ "fizz", "buzz" ], collectionsToMove: [ "fizz.coll1", "buzz.coll1" ], ok: 1, operationTime: Timestamp(1575399086, 1655), $clusterTime: { clusterTime: Timestamp(1575399086, 1655), signature: { hash: BinData(0,"XBrTmjMMe82fUtVLRm13GBVtRE8="), keyId: Long("6766255701040824328") } } }