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

mergeAllChunksOnShard

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • 행동
  • 예시
mergeAllChunksOnShard

mergeAllChunksOnShard 지정된 컬렉션 에 대해 샤드 가 소유한 모든 병합 가능한 청크 를 찾아 병합합니다.

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

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

중요

이 명령은 서버리스 인스턴스에서는 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.

  • MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전

  • MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전

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

db.adminCommand(
{
mergeAllChunksOnShard: <name of the collection>,
shard: <name of the shard>,
maxNumberOfChunksToMerge: <maximum number of chunks to merge> /* optional */
}
)

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

필드
유형
필요성
설명

mergeAllChunksOnShard

문자열

필수 사항

컬렉션의 이름입니다.

shard

문자열

필수 사항

샤드의 이름입니다.

maxNumberOfChunksToMerge

integer

옵션

병합할 최대 청크 수입니다.

mergeAllChunksOnShard 동일한 샤드에 있는 collection의 병합 가능한 모든 청크를 찾아서 병합합니다. 동일한 collection에 있는 두 개 이상의 청크는 다음 조건을 모두 충족할 때 병합 할 수 있습니다.

  • 동일한 샤드 가 소유합니다.

  • 이는 점보 청크가 아닙니다. jumbo 청크는 마이그레이션에 참여할 수 없으므로 병합할 수 없습니다.

  • 트랜잭션 및 스냅샷 읽기를 중단하지 않고 기록을 안전하게 삭제할 수 있습니다.

이 예시 에서는 모든 청크에 대한 기록이 비어 있고 모든 청크가 점보가 아니라고 가정합니다. 두 조건이 모두 참이므로 동일한 샤드 의 모든 연속 간격을 병합할 수 있습니다.

이 청크는 샤드 키가 xcoll(이)라는 컬렉션에 속합니다. 총 9개의 청크가 있습니다.

청크 ID
Min
최대
샤드

a

x: 0

x: 10

샤드0

B

x: 10

x: 20

샤드0

C

x: 20

x: 30

샤드0

D

x: 30

x: 40

샤드0

E

x: 40

x: 50

Shard1

F

x: 50

x: 60

Shard1

G

x: 60

x: 70

샤드0

h

x: 70

x: 80

샤드0

i

x: 80

x: 90

Shard1

1
db.adminCommand( { mergeAllChunksOnShard: "db.coll", shard: "Shard0" } )

이 명령은 연속적인 청크 시퀀스를 병합합니다.

  • A-B-C-D

  • G-H

2
db.adminCommand( { mergeAllChunksOnShard: "db.coll", shard: "Shard1" } )

이 명령은 청크 E-F의 연속 시퀀스를 병합합니다.

이러한 명령이 완료되면 인접한 청크가 병합됩니다. 총 청크는 원래 9개가 아니라 4개 있습니다.

청크 ID
Min
최대
샤드

A-B-C-D

x: 0

x: 40

샤드0

E-F

x: 40

x: 60

Shard1

G-H

x: 60

x: 80

샤드0

i

x: 80

x: 90

Shard1

돌아가기

샤드 나열