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

moveRange (데이터베이스 명령)

moveRange

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

샤드 간에 범위를 이동합니다. 관리 데이터베이스 사용하는 동안 moveRange 인스턴스 mongos와 함께 명령을 실행합니다.

mongosh에서 이 명령은sh.moveRange()헬퍼 메서드를 통해서도 실행 수 있습니다.

헬퍼 메서드는 사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 않을 수 있습니다. 편의가 필요하지 않거나 추가 반환 필드가 필요한 경우 데이터베이스 명령 mongosh 사용합니다.

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

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

참고

이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하세요.

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

db.adminCommand(
{
moveRange: <namespace>,
toShard: <ID of the recipient shard>,
min: <min key of the range to move>, // conditional
max: <max key of the range to move>, // conditional
forceJumbo: <bool>, // optional
writeConcern: <write concern>, // optional
secondaryThrottle: <bool> // optional
}
)

참고

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

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

필드
유형
설명

toShard

문자열

수신자 샤드의 ID입니다.

min

이동할 범위의 최소 키입니다. max 을(를) 지정하지 않는 경우 필수입니다.

min 을 지정하지 않는 경우 청크 C 에서 maxC 의 배타적 상한이거나 C 에 샤드 키 max 가 포함되어 있는 경우 min 는 다음과 같은 방식으로 결정됩니다. :

  • min(C) 에서 max 범위의 데이터 크기가 collection별 청크 크기 또는 기본 청크 크기보다 작으면 청크의 min 값은 min = min(C) 로 선택됩니다.

  • 그렇지 않으면 min > min(C) 키를 누릅니다. 여기서 min 는 구성된 청크 크기에 따라 달라집니다.

max

이동할 범위의 최대 키입니다. min 을(를) 지정하지 않는 경우 필수입니다.

max 을 지정하지 않으면 샤드 키 min 를 포함한 청크 C 가 주어지면 max 는 다음과 같은 방식으로 결정됩니다.

  • min 에서 max(C) 범위의 데이터 크기가 collection당 청크 크기 또는 기본 청크 크기보다 작은 경우 청크의 최대값은 max = max(C) 로 선택됩니다.

  • 그렇지 않으면 키 max < max(C) 에서 max 는 구성된 청크 크기에 따라 달라집니다.

부울

선택 사항.

명령 이 마이그레이션하기에는 너무 큰 범위를 이동할 수 있는지 여부를 결정하는 플래그입니다. 범위는 점보로 표시될 수도 있고 표시되지 않을 수도 있습니다.

  • true 인 경우 명령으로 범위를 이동할 수 있습니다.

  • false 인 경우 명령으로 범위를 이동할 수 없습니다.

기본값은 false입니다.

경고:

forceJumbo=true 이 포함된 moveRange 명령은 컬렉션 에 대한 쓰기 (write) 작업을 차단합니다.

이 옵션을 사용하면 청크가 구성된 청크 크기보다 큰 경우에도 샤드 가 청크를 마이그레이션 합니다. 마이그레이션 기간 동안 컬렉션 쓰기를 사용할 수 없습니다.

긴 차단 기간 없이 이러한 큰 청크를 마이그레이션하려면 대신 크기 제한을 초과하는 범위 균형 조정 을 참조하세요.

writeConcern

문서

secondaryThrottle

부울

선택 사항.

  • true 인 경우, 청크 마이그레이션 중에 이동하는 각 문서는 밸런서가 다음 문서를 진행하기 전에 적어도 하나의 보조 문서로 전파됩니다. 이는 { w: 2 } 의 쓰기 고려 (write concern)와 동일합니다.

    다른 쓰기 고려 (write concern)를 지정하려면 writeConcern 옵션을 사용합니다.

  • false 인 경우 밸런서는 보조 문서로의 복제를 기다리지 않고 대신 다음 문서를 계속 진행합니다.

자세한 내용은 보조 스로틀을 참조하세요.

범위 마이그레이션 섹션에서는 MongoDB의 샤드 간에 범위가 이동하는 방식을 설명합니다.

다음과 moveRange 같은 시나리오에서만 를 사용하세요.

  • 데이터의 초기 수집

  • 대량 대량 가져오기 작업

대부분의 경우 밸런서가 샤드 cluster에서 범위를 생성하고 균형을 맞출 수 있도록 허용합니다.

다음 예제에서는 다음과 함께 collection을 사용합니다.

  • 샤드 키 x

  • 구성된 청크 크기 128MB

  • 경계가 있는 청크: [x: 0, x: 100)

다음 표에는 minmax 를 다양한 값으로 설정한 결과가 나열되어 있습니다.

min
max
결과

0

100

범위 내 모든 문서를 수신자 샤드로 이동합니다.

10

30

세 가지 하위 범위를 생성합니다.

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

[x: 10, x: 30) 의 모든 문서를 수신자 샤드로 이동합니다.

0

20

두 개의 하위 범위를 생성합니다.

  • [x: 0, x: 20)

  • [x: 20, x: 100)

[x: 0, x: 20) 의 모든 문서를 수신자 샤드로 이동합니다.

40

100

두 개의 하위 범위를 생성합니다.

  • [x: 0, x: 40)

  • [x: 40, x: 100)

[x: 40, x: 100) 의 모든 문서를 수신자 샤드로 이동합니다.

다음 표에는 min 를 다양한 값으로 설정한 결과가 나열되어 있습니다.

min
키 범위의 데이터 양
결과

0

x: 0x: 100 사이에 128MB 미만이 포함됩니다.

범위 내 모든 문서를 수신자 샤드로 이동합니다.

10

x: 0x: 100 사이에 128MB 미만이 포함됩니다.

두 개의 하위 범위를 생성합니다.

  • [x: 0, x: 10)

  • [x : 10, x: 100)

[x: 10, x: 100) 의 모든 문서를 수신자 샤드로 이동합니다.

10

128MB가 x: 10x: 30 키 사이에 포함됩니다.

세 가지 하위 범위를 생성합니다.

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

[x: 10, x: 30) 의 모든 문서를 수신자 샤드로 이동합니다.

다음 표에는 max 를 다양한 값으로 설정한 결과가 나열되어 있습니다.

max
키 범위의 데이터 양
결과

100

x: 0x: 100 사이에 128MB 미만이 포함됩니다.

범위 내 모든 문서를 수신자 샤드로 이동합니다.

10

x: 0x: 100 사이에 128MB 미만이 포함됩니다.

두 개의 하위 범위를 생성합니다.

  • [x: 0, x: 10)

  • [x : 10, x: 100)

[x: 0, x: 10) 의 모든 문서를 수신자 샤드로 이동합니다.

30

128MB가 x: 10x: 30 키 사이에 포함됩니다.

세 가지 하위 범위를 생성합니다.

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

[x: 10, x: 30) 의 모든 문서를 수신자 샤드로 이동합니다.

이 페이지 평가하기