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

moveRange

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • 고려 사항
  • 예시
moveRange

버전 6.0에 추가.

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

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

  • 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
waitForDelete: <bool>, // optional
writeConcern: <write concern>, // optional
secondaryThrottle: <bool> // optional
}
)

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

필드
유형
설명
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 명령은 컬렉션에 대한 읽기 및 쓰기 작업을 차단합니다.

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

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

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) 의 모든 문서를 수신자 샤드로 이동합니다.

돌아가기

movePrimary