sh.unshardCollection
정의
sh.unshardCollection( namespace, shardID )
기존의 샤딩된 컬렉션 을 언샤드하고 컬렉션 데이터를 단일 샤드 로 이동합니다. 컬렉션 의 샤딩을 해제하면 컬렉션 을 여러 샤드 로 분할할 수 없으며 샤드 키 가 제거됩니다.
버전 8.0에 추가 되었습니다.
중요
Mongo쉬 방법
이 페이지에서는
mongosh
메서드를 설명합니다. 이는 데이터베이스 명령 또는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.데이터베이스 명령에 대해서는
unshardCollection
명령을 참조하십시오.MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.
sh.unshardCollection
메서드를 사용하려면 컬렉션 데이터를 수신할 샤드 를 지정해야 합니다.unshardCollection
명령을 사용할 때 대상 샤드 를 지정하지 않으면 클러스터 가 자동으로 데이터가 가장 적은 샤드 를 선택합니다.참고
컬렉션 의 샤딩 해제는 쓰기 집약적인 작업으로 oplog 성장률이 증가할 수 있습니다. 이를 완화하려면 다음과 같은 구성 변경을 고려하세요.
oplog 의 무제한 증가를 방지하려면 고정된 oplog 크기를 설정하다 합니다.
세컨더리가 오래될 가능성을 줄이려면 oplog 크기를 늘리세요.
자세한 내용은 복제본 세트 oplog 를 참조하세요.
구문
sh.unshardCollection
의 구문은 다음과 같습니다:
sh.unshardCollection( namespace, shardID )
매개변수
Parameter | 유형 | 설명 |
---|---|---|
| 문자열 | 샤딩을 해제할 데이터베이스 및 컬렉션 을 지정합니다. |
| 문자열 | 수신자 샤드 ID 를 지정합니다. MongoDB 가 컬렉션 을 샤딩 해제하면 컬렉션 데이터를 현재 샤드에서 이 특정 샤드 로 이동합니다. |
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
중요
이 명령은 공유 또는 서버리스 인스턴스에서 실행 수 없습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.
고려 사항
sh.unshardCollection()
샤딩된 클러스터에서만 실행 수 있습니다.sh.unshardCollection()
샤딩된 컬렉션에서만 작동할 수 있습니다.sh.unshardCollection()
한 번에 하나의 컬렉션 에서만 작동할 수 있습니다.sh.unshardCollection()
최소 지속 시간은 5 분입니다.sh.unshardCollection()
실행 후 Atlas Search 인덱스를 다시 작성해야 합니다.sh.unshardCollection()
이(가) 완료될 때까지 샤드를 추가 또는 제거하거나 내장된 구성 서버와 전용 구성 서버 간에 전환하는 등 토폴로지 를 변경할 수 없습니다.sh.unshardCollection()
이(가) 진행 중인 동안에는 샤딩 해제 중인 컬렉션 에서 다음 작업을 실행 수 없습니다.unshardCollection
이(가) 진행 중인 동안에는 클러스터 에서 다음 작업을 실행 수 없습니다.sh.unshardCollection()
이(가) 진행 중인 동안 발생하는 인덱스 빌드는 자동으로 실패할 수 있습니다.sh.unshardCollection()
이(가) 진행되는 동안에는 인덱스를 생성하지 마세요.진행 중인 인덱스 빌드가 있는 경우
sh.unshardCollection()
를 호출하지 마세요.
요구 사항:
컬렉션 의 샤딩을 해제하기 전에 다음 요구 사항을 충족하는지 확인하세요.
애플리케이션 은 영향을 받는 컬렉션 이 쓰기를 차단하는 2초의 기간을 허용할 수 있습니다. 쓰기가 차단되는 기간 동안 애플리케이션 의 지연 시간 이 증가합니다.
데이터베이스는 다음과 같은 리소스 요구 사항을 충족합니다.
컬렉션 을 이동하려는 샤드 에 컬렉션 및 해당 인덱스를 위한 충분한 저장 공간이 있는지 확인합니다. 대상 샤드 에는 최소
( Collection storage size + Index Size ) * 2
바이트의 사용 가능한 공간이 필요합니다.I/O 용량 이 50% 미만인지 확인합니다.
CPU 로드가 80% 미만인지 확인합니다.
예시
이 예시 에서는 app
데이터베이스 의 inventory
컬렉션 을 shard02
샤드 로 샤딩 해제합니다.
sh.unshardCollection( "app.inventory", "shard02" )
사용 가능한 샤드 ID 목록을 가져오려면 sh.status()
를 실행 합니다. 자세한 내용은 sh.status() 출력을 참조하세요.