Docs Menu
Docs Home
/
데이터베이스 매뉴얼
/ /

동일한 샤드 키로 리샤딩

MongoDB 8.0부터는 다운타임이나 워크로드 에 영향 없이 동일한 샤드 키 리샤딩하여 데이터를 이동할 수 있습니다. 이를 통해 다음을 수행할 수 있습니다.

  • Reshard to Shard 기술을 사용하여 컬렉션 을 샤드 하고 해당 데이터를 모든 관련 샤드에 배포합니다.

  • 새 샤드를 더 빠르게 추가

  • 더 빠르게 샤드 제거

  • 컬렉션을 다시 작성하여 디스크 공간 확보

MongoDB 8.0부터 리샤딩은 기본 순서 스캔을 사용하여 데이터를 읽습니다. 리샤딩은 먼저 모든 데이터를 복제한 다음 관련 인덱스를 빌드하므로 리샤딩 프로세스 속도가 수십 배 향상됩니다.

forceRedistributiontrue로 설정하다 상태에서 reshardCollection 명령을 사용하여 동일한 키로 리샤딩할 수 있습니다.

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

db.adminCommand(
{
reshardCollection: "<database>.<collection>",
key: { "<shardkey>" },
unique: <boolean>,
numInitialChunks: <integer>,
collation: { locale: "simple" },
zones: [
{
min: { "<document with same shape as shardkey>" },
max: { "<document with same shape as shardkey>" },
zone: <string> | null
},
],
forceRedistribution: <bool>
}
)

자세한 내용은 reshardCollection를 참조하세요.

리샤딩은 다운타임이나 워크로드 에 영향 없이 데이터를 이동하는 전략입니다. Reshard to Shard 기술을 사용하여 컬렉션 을 샤드 하고 모든 샤드에 데이터를 배포합니다.

리샤딩을 사용하면 청크 마이그레이션보다 빠르게 모든 관련 샤드에 컬렉션을 배포할 수 있습니다. 모든 샤드에 쓰기를 병렬로 리샤딩하는 반면, 각 샤드 한 번에 하나 청크 마이그레이션 에만 참여할 수 있습니다. 리샤딩은 프로세스 끝날 때 이전 컬렉션 삭제합니다. 리샤딩이 끝날 때 고아 문서가 없습니다.

리샤드 투 샤드 기술을 사용하면 리샤딩을 사용하여 컬렉션 을 샤드 하고 클러스터 의 모든 샤드에 데이터를 배포할 수 있습니다.

처음에 모든 크기의 컬렉션을 원하는 수의 샤드에 걸쳐 샤딩 경우 리샤드-샤딩 을 사용하는 것이 좋습니다. 배포서버 서버가 리소스 요구 사항을 충족하는 경우, 샤드 하려는 컬렉션 크기에 관계없이 Reshard to Shard 를 사용합니다.

이 공식을 사용하여 최소 oplog window 24 시간이라고 가정하고 컬렉션 크기와 인덱스 크기를 추가하여 리샤딩 작업에 필요한 저장 공간을 계산합니다.

Available storage required on each shard = [(collection size + index size) *2 ] / number of shards the collection will be distributed across.

예시 들어 4 샤드에 분산된 2TB 컬렉션 과 400GB 인덱스에는 샤드 당 최소 1.2TB의 사용 가능한 저장 필요합니다.

[ (2 TB + 400GB) * 2 ] / 4 shards = 1.2 TB / shard

클러스터 에 사용 가능한 저장 공간이 있는지 확인해야 합니다.

공간이 부족하거나 사용 가능한 I/O 헤드룸이 있는 경우 저장 크기를 늘려야 합니다. CPU 헤드룸이 충분하지 않은 경우 더 높은 인스턴스 크기를 선택하여 클러스터 확장하다 해야 합니다.

MongoDB cluster Atlas 에서 호스팅되는 경우, Atlas UI 사용하여 저장, CPU 및 I/O 헤드룸 지표 검토 수 있습니다.

애플리케이션 리샤딩되는 컬렉션 컬렉션 쓰기를 차단하는 2초를 견딜 수 있는지 확인해야 합니다. 쓰기가 차단되면 애플리케이션 지연 시간 증가합니다. 워크로드 이 요구 사항을 수용할 수 없는 경우 청크 마이그레이션을 사용하여 클러스터 의 균형을 맞추세요.

클러스터 는 다음과 같은 추가 요구 사항을 충족해야 합니다.

  • 최소 oplog window 는 24 시간입니다.

  • I/O 용량 50% 미만입니다.

  • CPU 로드가 80% 미만입니다.

돌아가기

구성 샤드로 시작하기