정의
shardDrainingStatus밸런서 여전히 청크를 클러스터 의 다른 샤드로 이동시키고 있는지 또는 프로세스 완료되었는지 여부를 나타내는 배출 샤드 의 상태를 표시합니다.
이 명령은 샤드 존재하지 않으면 오류를 반환하고, 그렇지 않으면 배출 작업의 상태를 반환합니다.
샤드 배출 시작하려면
startShardDraining명령을 참조하세요.샤드 배출 중지하려면 명령을
stopShardDraining참조하세요.드레이닝된 샤드 제거 하려면 명령을
commitShardRemoval참조하세요.버전 8.3에 추가 되었습니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
참고
이 명령은 MongoDB Atlas에서 지원되지 않습니다. Atlas 클러스터에 샤드를 추가하거나 제거 하려면 Modify your Atlas Sharded Atlas cluster 샤드 클러스터 수정)를 참조하세요.
구문
명령은 다음과 같은 구문을 가집니다:
db.adminCommand( { shardDrainingStatus: <shard> } )
출력 필드
이 명령은 다음 출력을 반환합니다.
필드 | 유형 | 설명 |
|---|---|---|
| 문자열 | 밸런서 에서 수행 중인 현재 배출 작업을 제공합니다. |
| 문자열 | 배출 작업의 상태를 제공합니다. |
| 문자열 | 배출 샤드 나타냅니다. |
| 문서 | 샤드 를 배출하기 위해 밸런서 수행해야 하는 나머지 작업을 표시합니다. |
| long | 샤드 에 아직 남아 있는 청크의 수를 나타냅니다. |
| long | 샤드 에 아직 남아 있는 데이터베이스의 수를 나타냅니다. |
| long | 샤드 에 아직 남아 있는 큰 청크의 수를 나타냅니다. |
| long | 샤드 에 남아 있는 컬렉션의 수를 나타냅니다. |
| 문자열 | 사용자에게 추가 메시지를 제공합니다. |
| 배열 | 배출 샤드 프라이머리 샤드 로 사용하는 데이터베이스를 나타냅니다. 클러스터 에서 샤드 제거 하려면 먼저 명령을 사용하여 이러한 데이터베이스를 새 샤드 로 수동으로 이동해야 |
| 배열 | 배출 샤드 에 저장된 샤딩되지 않은 컬렉션을 나타냅니다. 클러스터 에서 샤드 제거 하려면 먼저 명령을 사용하여 이러한 컬렉션을 다른 샤드 로 수동으로 이동해야 합니다. |
행동
액세스 요구 사항
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") } } }