정의
startShardDraining샤딩된 클러스터 에서 제거할 준비를 하기 위해 샤드 에서 청크를 배출 프로세스 를 시작합니다.
명령이 실행되면 지정된 샤드 비우고 싶다고 밸런서 알립니다. 그런 다음 밸런서 비동기적으로 청크를 샤드 에서 클러스터 의 다른 샤드로 이동하기 시작합니다. 밸런서 이 프로세스 완료하면 샤드 데이터가 포함되지 않으므로 클러스터 에서 안전하게 제거할 수 있습니다.
참고
청크를 샤드 밖으로 이동하려면 에 대해 밸런서 활성화해야 합니다. 밸런서 비활성화되면 청크가 마이그레이션되지 않으며
startShardDrainingshardDrainingStatus는 샤드 에 남아 있는 작업을 계속 보고합니다.이 명령은 샤드 존재하지 않으면 오류를 반환하고, 그렇지 않으면
ok을 반환합니다.배출 샤드 의 상태를 확인하려면 명령을
shardDrainingStatus사용합니다.샤드 드레이닝을 중지하려면 명령을
stopShardDraining참조하세요.드레이닝된 샤드 제거 하려면 명령을
commitShardRemoval참조하세요.버전 8.3에 추가 되었습니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
참고
이 명령은 MongoDB Atlas에서 지원되지 않습니다. Atlas 클러스터에 샤드를 추가하거나 제거 하려면 Modify your Atlas Sharded Atlas cluster 샤드 클러스터 수정)를 참조하세요.
구문
명령은 다음과 같은 구문을 가집니다:
db.adminCommand( { startShardDraining: <shardToDrain> } )
행동
액세스 요구 사항
authorization 을(를) 활성화한 경우 clusterManager 역할 또는 removeShard 작업을 포함하는 역할이 있어야 합니다.
샤드 드레인 중 클러스터 백업 없음
샤드 배출 동안에는 클러스터 를 백업할 수 없습니다.
동시 배출 샤드 작업
한 번에 둘 이상의 샤드 배출 작업이 진행 중일 수 있습니다.
데이터베이스 마이그레이션 요구 사항
샤딩된 클러스터 의 각 데이터베이스 에는 프라이머리 샤드 가 있습니다. 드레이닝하려는 샤드 클러스터 데이터베이스 중 하나의 프라이머리 이기도 한 경우, 샤드 에서 모든 데이터를 마이그레이션한 후 데이터베이스를 새 샤드 로 수동으로 이동해야 합니다. 자세한 내용은 movePrimary 명령 및 샤드 클러스터에서 샤드 제거를 참조하세요.
컬렉션 마이그레이션 요구 사항
샤딩되지 않은 컬렉션은 개별 샤드에 저장됩니다. 이러한 컬렉션 중 하나가 제거 하려는 샤드 에 있는 경우 먼저 컬렉션 다른 샤드 로 마이그레이션 해야 합니다.
샤딩되지 않은 컬렉션 마이그레이션 하려면 명령을 moveCollection 참조하세요.
청크 밸런싱
청크 분포가 고르지 않은 클러스터 에서 샤드 배출하는 경우, 밸런서 는 먼저 배출 샤드 에서 청크를 제거한 다음 나머지 고르지 않은 청크 분포의 균형을 맞춥니다.
쓰기 고려
"majority"는 명령의mongos 쓰기 고려 (write concern)로 변환합니다.startShardDraining
변경 스트림
샤드 비우면 열려 있는 변경 스트림 커서 닫힐 수 있으며, 닫힌 변경 스트림 커서 완전히 재개되지 않을 수 있습니다.
DDL 작업
startShardDraining 클러스터 가 DDL 작업(예:reshardCollection 컬렉션 수정하는 작업)을 실행하는 동안 를 실행 동시 DDL 작업이 완료된 후에만 샤드 배출 실행됩니다.
예시
샤드 배출 시작하려면 메서드를 db.adminCommand() 사용합니다.
db.adminCommand( { startShardDraining: "shard04" } )