정의
startShardDraining샤딩된 클러스터 에서 제거할 준비를 하기 위해 샤드 에서 청크를 배출 프로세스 를 시작합니다.
명령이 실행되면 지정된 샤드 비우고 싶다고 밸런서 알립니다. 그런 다음 밸런서 비동기적으로 청크를 샤드 에서 클러스터 의 다른 샤드로 이동하기 시작합니다. 밸런서 이 프로세스 완료하면 샤드 데이터가 포함되지 않으므로 클러스터 에서 안전하게 제거할 수 있습니다.
참고
청크를 샤드 밖으로 이동하려면
startShardDraining에 대해 밸런서 활성화해야 합니다. 밸런서 비활성화되면 청크가 마이그레이션되지 않으며shardDrainingStatus는 샤드에 남아 있는 작업을 계속 보고합니다.이 명령은 샤드 존재하지 않으면 오류를 반환하고, 그렇지 않으면
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 명령을 참조하세요.
청크 밸런싱
청크 분포가 고르지 않은 클러스터 에서 샤드 배출하는 경우, 밸런서 는 먼저 배출 샤드 에서 청크를 제거한 다음 나머지 고르지 않은 청크 분포의 균형을 맞춥니다.
쓰기 고려
mongos 는 startShardDraining 명령의 쓰기 고려 (write concern) "majority"로 변환합니다.
변경 스트림
샤드 비우면 열려 있는 변경 스트림 커서 닫힐 수 있으며, 닫힌 변경 스트림 커서 완전히 재개되지 않을 수 있습니다.
DDL 작업
클러스터 가 DDL 작업(예: reshardCollection 컬렉션 수정하는 작업)을 실행하는 동안 startShardDraining 를 실행 동시 DDL 작업이 완료된 후에만 샤드 배출 실행됩니다.
예시
샤드 배출 시작하려면 db.adminCommand() 메서드를 사용합니다.
db.adminCommand( { startShardDraining: "shard04" } )