AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

sh.moveCollection() (mongosh 메서드)

sh.moveCollection(namespace, toShard)

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

중요

Mongo쉬 방법

이 페이지에서는 mongosh 메서드를 설명합니다. 이는 데이터베이스 명령이나 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.

데이터베이스 명령에 대해서는 moveCollection 명령을 참조하십시오.

MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.

sh.moveCollection() 의 구문은 다음과 같습니다:

sh.moveCollection( "<namespace>", "<toShard>" )

참고

listShards 명령을 사용하여 수신자 샤드의 ID 조회.

sh.moveCollection() 다음 매개변수를 사용합니다.

Parameter
유형
설명

namespace

문자열

이동할 컬렉션 의 데이터베이스 및 이름입니다.

toShard

문자열

수신자 샤드의 ID입니다.

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

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

참고

이 명령은 Atlas 무료 및 Flex 계층에서는 사용할 수 없습니다.

  • sh.moveCollection() 샤딩된 클러스터에서만 실행 수 있습니다.

  • sh.moveCollection() 는 샤딩되지 않은 컬렉션만 이동할 수 있습니다.

  • sh.moveCollection() 한 번에 하나의 컬렉션 만 이동할 수 있습니다.

  • sh.moveCollection() 최소 지속 시간은 5 분입니다.

  • writeConcernMajorityJournalDefault은(는) true이어야 합니다.

  • 고유성 제약 조건이 있는 컬렉션을 이동하려면 새 인덱스는 기존의 모든 고유 인덱스에 대한 고유 인덱스 요구 사항 을 충족해야 합니다.

  • 이동 중인 컬렉션 이 MongoDB Search를 사용하는 경우 moveCollection 이(가) 완료된 후에는 해당 검색 인덱스를 사용할 수 없게 됩니다. 검색 인덱스를 수동으로 다시 작성해야 합니다.

  • 이동하려는 컬렉션 Atlas Online Archive에 보관된 경우,Orphaned 이동 작업이 완료되면 온라인 보관 파일이(으)로 표시됩니다.Active 상태 의 동일한 조합에 대한 다른 아카이브가 없는 한 고아 아카이브와 동일한 데이터베이스, 컬렉션 및 필드에 대해 다른 온라인 아카이브를 만들 수 있습니다.

  • moveCollection 가 완료될 때까지 샤드 추가 또는 제거 또는 임베디드 구성 서버와 전용 구성 서버 간의 전환과 같은 토폴로지 변경을 수행할 수 없습니다.

  • sh.moveCollection() 이(가) 진행 중인 동안에는 이동 중인 컬렉션 에 대해 다음 작업을 실행 수 없습니다.

  • moveCollection 이(가) 진행 중인 동안에는 클러스터 에 대해 다음 작업을 실행 수 없습니다.

  • sh.moveCollection() 이(가) 진행 중인 동안 발생하는 인덱스 빌드는 자동으로 실패할 수 있습니다.

    • sh.moveCollection() 이(가) 진행되는 동안에는 인덱스를 생성하지 마세요.

    • 진행 중인 인덱스 빌드가 있는 경우 sh.moveCollection() 를 호출하지 마세요.

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

  • 애플리케이션 은 영향을 받는 컬렉션 이 쓰기를 차단하는 2초의 기간을 허용할 수 있습니다. 쓰기가 차단되는 기간 동안 애플리케이션 의 지연 시간 이 증가합니다.

  • 데이터베이스는 다음과 같은 리소스 요구 사항을 충족합니다.

    • 컬렉션 을 이동하려는 샤드 에 컬렉션 및 해당 인덱스를 위한 충분한 저장 공간이 있는지 확인합니다. 대상 샤드 에는 최소 ( Collection storage size + Index Size ) * 2 바이트의 사용 가능한 공간이 필요합니다.

    • I/O 용량 이 50% 미만인지 확인합니다.

    • CPU 로드가 80% 미만인지 확인합니다.

중요

이러한 요구 사항은 데이터베이스에 의해 적용되지 않습니다. 충분한 리소스를 할당하지 못하면 다음과 같은 결과가 발생할 수 있습니다.

  • 데이터베이스 공간이 부족하여 종료되는 경우

  • 성능 저하

  • 작업이 예상보다 오래 걸리는 경우

애플리케이션 에 트래픽이 적은 기간이 있는 경우 가능하면 해당 기간 동안 컬렉션 에 대해 이 작업을 수행합니다.

이 예시 에서는 app 데이터베이스 의 inventory 이라는 샤딩되지 않은 컬렉션 을 shard02 샤드 로 이동합니다.

sh.moveCollection( "app.inventory", "shard02" )

사용 가능한 샤드 ID 목록을 가져오려면 sh.status() 를 실행 합니다. 자세한 내용은 sh.status() 출력을 참조하세요.