Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

moveCollection

이 페이지의 내용

  • 정의
  • 호환성
  • 제한 사항
  • 구문
  • 명령 필드
  • 고려 사항
  • 요구 사항:
  • 예시
  • 자세히 알아보기
moveCollection

버전 8.0에 추가 되었습니다.

샤딩되지 않은 단일 컬렉션 을 다른 샤드 로 이동합니다. 관리 moveCollection mongos데이터베이스 를 사용하는 동안 인스턴스 로 를 실행합니다.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

참고

이 명령은 Atlas 공유 계층 또는 Atlas 서버리스에서는 사용할 수 없습니다.

다음에는 moveCollection 을(를) 사용할 수 없습니다.

명령은 다음과 같은 구문을 가집니다:

db.adminCommand(
{
moveCollection: "<database>.<collection>",
toShard: "<ID of the recipient shard>",
}
)

이 명령은 다음 필드를 사용합니다.

필드
유형
설명
moveCollection
문자열
이동할 컬렉션 의 데이터베이스 및 이름입니다.
toShard
문자열
수신자 샤드의 ID입니다.

컬렉션 을 이동하기 전에 다음 요구 사항을 충족하는지 확인하세요.

  • 애플리케이션 은 영향을 받는 컬렉션 이 쓰기를 차단하는 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() 출력을 참조하세요.

돌아가기

moveChunk