ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs Menu

mergeAllChunksOnShard

mergeAllChunksOnShard

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

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

  • MongoDB Atlas: 클라우드에서의 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 은 동일한 샤드 에서 컬렉션 에 대해 병합 가능한 모든 청크를 찾아 병합합니다. 동일한 컬렉션 에 있는 두 개 이상의 연속 청크는 다음 조건을 모두 충족할 때 병합 할 수 있습니다.

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

  • 이는 점보 청크가 아닙니다. 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