moveCollection
정의
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 Atlas 공유 계층 또는 Atlas 서버리스에서는 사용할 수 없습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
제한 사항
다음에는 moveCollection
을(를) 사용할 수 없습니다.
구문
명령은 다음과 같은 구문을 가집니다:
db.adminCommand( { moveCollection: "<database>.<collection>", toShard: "<ID of the recipient shard>", } )
명령 필드
이 명령은 다음 필드를 사용합니다.
필드 | 유형 | 설명 |
---|---|---|
| 문자열 | 이동할 컬렉션 의 데이터베이스 및 이름입니다. |
| 문자열 | 수신자 샤드의 ID입니다. |
고려 사항
moveCollection
샤딩된 클러스터에서만 실행 수 있습니다.moveCollection
는 샤딩되지 않은 컬렉션만 이동할 수 있습니다.moveCollection
한 번에 하나의 컬렉션 만 이동할 수 있습니다.moveCollection
최소 지속 시간은 5 분입니다.moveCollection
실행 후 Atlas Search 인덱스를 다시 작성해야 합니다.moveCollection
가 완료될 때까지 샤드 추가 또는 제거 또는 임베디드 구성 서버와 전용 구성 서버 간의 전환과 같은 토폴로지 변경을 수행할 수 없습니다.moveCollection
이(가) 진행 중인 동안에는 이동 중인 컬렉션 에 대해 다음 작업을 실행 수 없습니다.moveCollection
이(가) 진행 중인 동안에는 클러스터 에 대해 다음 작업을 실행 수 없습니다.moveCollection
이(가) 진행 중인 동안 발생하는 인덱스 빌드는 자동으로 실패할 수 있습니다.moveCollection
이(가) 진행되는 동안에는 인덱스를 생성하지 마세요.진행 중인 인덱스 빌드가 있는 경우
moveCollection
를 호출하지 마세요.
요구 사항:
컬렉션 을 이동하기 전에 다음 요구 사항을 충족하는지 확인하세요.
애플리케이션 은 영향을 받는 컬렉션 이 쓰기를 차단하는 2초의 기간을 허용할 수 있습니다. 쓰기가 차단되는 기간 동안 애플리케이션 의 지연 시간 이 증가합니다.
데이터베이스는 다음과 같은 리소스 요구 사항을 충족합니다.
컬렉션 을 이동하려는 샤드 에 컬렉션 및 해당 인덱스를 위한 충분한 저장 공간이 있는지 확인합니다. 대상 샤드 에는 최소
( Collection storage size + Index Size ) * 2
바이트의 사용 가능한 공간이 필요합니다.I/O 용량 이 50% 미만인지 확인합니다.
CPU 로드가 80% 미만인지 확인합니다.
중요
이러한 요구 사항은 데이터베이스에 의해 적용되지 않습니다. 충분한 리소스를 할당하지 못하면 다음과 같은 결과가 발생할 수 있습니다.
데이터베이스 공간이 부족하여 종료되는 경우
성능 저하
작업이 예상보다 오래 걸리는 경우
애플리케이션 에 트래픽이 적은 기간이 있는 경우 가능하면 해당 기간 동안 컬렉션 에 대해 이 작업을 수행합니다.
예시
이 예시 에서는 app
데이터베이스 의 inventory
이라는 샤딩되지 않은 컬렉션 을 shard02
샤드 로 이동합니다.
db.adminCommand( { moveCollection: "app.inventory", toShard: "shard02" } )
사용 가능한 샤드 ID 목록을 가져오려면 sh.status()
를 실행 합니다. 자세한 내용은 sh.status() 출력을 참조하세요.