Docs Menu
Docs Home
/
MongoDB Ops Manager

샤드 컬렉션 관리

이 페이지의 내용

  • 개요
  • 샤드 컬렉션 관리 활성화
  • 샤드 클러스터 밸런서 실행 시기 변경
  • 새 샤드 컬렉션 만들기
  • 구역 샤딩 구성
  • 샤드 컬렉션 관리 비활성화

중요

관리되는 샤드 컬렉션 UI 는 더 이상 사용되지 않습니다. MongoDB Ops Manager 7.0.0 에는 이 기능 이 포함되지 않습니다.

샤딩 은 여러 머신에 데이터를 분산합니다. MongoDB 는 샤딩 을 사용하여 대규모 데이터 세트와 높은 처리량 작업의 배포를 지원 합니다. MongoDB Ops Manager 는 해당 클러스터에 샤딩된 클러스터 와 샤딩된 컬렉션 을 생성할 수 있습니다.

이 페이지에서는 샤딩된 컬렉션 MongoDB Ops Manager 내에서 문서 가 분산된 되는 방식을 결정하는 등 가 샤딩된 컬렉션을 관리 하는 방법에 대해 설명합니다.

샤딩에는 컬렉션 내에서 문서를 분할 하는 데 사용되는 샤드 키 를 정의하는 작업이 포함됩니다. 샤딩 에 대한 자세한 설명은 MongoDB 매뉴얼 을 참조하세요.

샤드 키는 컬렉션 내의 모든 문서에 존재하는 하나 이상의 인덱싱된 필드 로 구성됩니다. 복합 인덱스의 샤드 키는 복합 샤드 키라고 합니다. 각 컬렉션에는 하나의 샤드 키만 있을 수 있습니다. 컬렉션을 샤딩한 후에는 샤드 키를 변경할 수 없습니다. 샤드 클러스터는 샤드 및 비샤드 컬렉션을 모두 지원할 수 있습니다. 샤드 키 선택에 대한 권장사항은 MongoDB 매뉴얼 을 참조하세요.

샤드 클러스터는 샤드 컬렉션의 문서를 클러스터의 샤드에 균등하게 배포하려고 시도합니다. 샤딩 구역을 사용하여 컬렉션 내 문서 배포를 관리할 수 있습니다.

구역 샤딩 은 컬렉션의 샤드 키 값 범위를 구역 이라는 클러스터 의 하나 이상의 샤드에 연결합니다. MongoDB 는 최종적으로 지정된 범위 내의 문서를 관련 구역 으로 라우팅합니다. 이를 통해 타겟팅된 데이터 배포가 가능합니다. MongoDB Ops Manager 는 구역 샤딩과 기본값 샤딩 을 모두 지원합니다. 구역 샤딩 에 대한 자세한 설명은 MongoDB 매뉴얼 을 참조하세요.

참고

태그 인식 샤딩구역 샤딩 은 서로 바꿔 사용할 수 있습니다. 태그 인식 샤딩 은 MongoDB 3.4 출시하다 와 함께 구역 샤딩으로 전환됩니다.

다음 절차에서는 MongoDB Ops Manager 가 수행할 수 있는 방법을 설명합니다.

  • 샤드 컬렉션 관리

  • 샤딩된 클러스터 밸런서 실행 시기 변경

  • 새 샤딩된 컬렉션 만들기

  • MongoDB Ops Manager로 샤딩된 컬렉션 가져오기

  • 샤드 클러스터의 구역 정의

  • 샤드 컬렉션의 범위 정의

각 절차에서는 Deployment 버튼을 클릭하여 Deployment 페이지를 먼저 표시했다고 가정합니다.

MongoDB Ops Manager 를 사용하여 샤딩된 컬렉션을 관리 수 있습니다. MongoDB Ops Manager 가 샤딩된 컬렉션을 관리 하도록 하려면 먼저 MongoDB Ops Manager 에서 가져오기 프로세스 를 실행 해야 합니다. 이렇게 하면 컬렉션의 구성이 실수로 재정의되는 것을 방지할 수 있습니다.

1
2

샤딩 탭이 표시됩니다.

3
4

기존의 모든 샤딩된 컬렉션 및 구역을 가져옵니다.

5
6

샤딩된 컬렉션을 가져올 때 발생할 수 있는 몇 가지 오류가 있습니다.

겹치는 범위

MongoDB Ops Manager 는 중복 정의된 범위를 지원 하지 않습니다.

예시

복합 샤드 키 는 겹치지 않는 범위를 가진 것처럼 보일 수 있습니다. 이 예시 에서는 차이점을 설명합니다.

단순 복합 샤드 키 는 1 ~ 10 사이의 값을 가진 두 개의 정수로 구성됩니다. 각 청크 가 약 64 MB인 컬렉션 의 청크 범위는 다음과 같습니다.

min
최대

[$min, $min]

[1, 8]

[1,8]

[3,1]

[3,1]

[5,2]

[5,2]

[5,10]

[5,10]

[7,3]

[7,3]

[$max,$max]

범위는 각 값이 개별적으로 아니라 결합된 (또는 복합) 두 값을 기반으로 합니다. 두 번째 값은 각 청크에서 위아래로 이동하지만 조합은 항상 최소값에서 최대값으로 증가합니다.

mongosh 를 사용하여 데이터베이스 에서 직접 이 문제를 해결할 수 있습니다.

  1. 샤드 범위의 상태를 확인합니다.

  2. 범위가 겹칠 가능성이 있는지 검토합니다.

  3. 샤드 키 범위에서 태그를 제거합니다.

  4. 샤드 키 범위에 새 태그를 추가합니다.

데이터 유형 불일치

각 범위에 대해 MongoDB Ops Manager는 샤드 키에 있는 각 필드의 최소값과 최대값이 동일한 BSON 데이터 유형이어야 합니다. 범위의 복합 샤드 키는 키의 각 필드에 대해 다른 BSON types를 사용할 수 있습니다. MongoDB Ops Manager는 샤딩된 컬렉션을 가져올 때와 범위가 생성될 때 이를 확인합니다.

참고

Min 키와 Max 키는 서로 다른 데이터 유형이며 범위 에서 BSON 데이터 유형을 혼합하지 않는 유일한 예외입니다.

mongosh 를 사용하여 데이터베이스 에서 직접 이 문제를 해결할 수 있습니다.

  1. 샤드 범위의 상태를 확인합니다.

  2. 유형 최소값과 최대값을 확인 합니다.

  3. 샤드 키 범위에서 태그를 제거합니다.

  4. 샤드 키 범위에 새 태그를 추가합니다.

Data type invalid

범위 의 최소값과 최대값은 8개의 BSON 데이터 유형만 사용할 수 있습니다.

  • 문자열

  • Integer

  • Double

  • Long

  • 날짜

  • 타임스탬프

  • ObjectId

  • MinKey / MaxKey

다음도 참조하세요.

mongosh 를 사용하여 데이터베이스 에서 직접 이 문제를 해결할 수 있습니다.

  1. 샤드 범위의 상태를 확인합니다.

  2. 유형 최소값과 최대값을 확인 합니다.

  3. 샤드 키 범위에서 태그를 제거합니다.

  4. 샤드 키 범위에 새 태그를 추가합니다.

7
  • 변경 사항이 허용되면 Confirm and Deploy 을(를) 클릭합니다.

  • 변경 사항을 수정해야 하는 경우 Cancel 을 클릭하고 1 단계로 돌아갑니다.

MongoDB Ops Manager를 사용하여 샤드 클러스터 가 샤드 간에 데이터를 분산하는 시기를 설정할 수 있습니다.

각 샤딩된 클러스터 에는 각 샤드 전체에 청크가 고르게 분산 되도록 하는 밸런서 라는 프로세스 가 있습니다. 샤딩된 클러스터 에서 청크를 마이그레이션하면 성능에 영향 을 미칠 수 있습니다 . 밸런서 효율성 은 샤드 키 선택 에 따라 달라집니다. 밸런서 관리자 인터페이스를 사용하여 MongoDB Ops Manager Windows 밸런서를 실행 수 있는 특정 를 설정하다 합니다(예: 사용량이 적은 시간에 밸런싱 라운드를 예약하는 경우).

샤딩된 클러스터 의 밸런싱 창 을 변경하려는 경우:

1
2

Balancer 탭이 표시됩니다.

3

Manage BalancerYes로 전환합니다.

참고

밸런서 관리가 활성화되어 있고 비활성화하려면 Manage BalancerNo 로 전환합니다.

4

밸런서 실행 시기를 변경하려면:

  1. 다음을 클릭합니다. Schedule the Balancer 오른쪽에 있습니다.

  2. Start 상자에 창 24시간을 사용하기 시작해야 하는 시간을 입력합니다.

  3. Stop 상자에 시간 24을 사용하여 창 을 종료해야 하는 시간을 입력합니다.

  4. Save를 클릭합니다.

참고

StartStop 의 값은 00:00 ~ 23:59 사이일 수 있지만 StopStart 이전의 값일 수 있습니다. StopStart 보다 이른 경우 Stop 은 다음 날에 있는 것으로 처리됩니다.

예시

마이그레이션 창 을 오후 11:00 ~ 오전 2:00 사이로 설정하다 하려면 다음 날 Start23:00 로 설정하고 Stop02:00 로 설정합니다.

5
  1. Enable Balancer 을(를) Yes 으)로 전환합니다.

  2. Save를 클릭합니다.

6

Ops Manager가 제안된 변경 사항을 표시합니다.

  1. 만족하면 Confirm & Deploy을(를) 클릭합니다.

  2. 구성을 추가로 변경하려면 Cancel을(를) 클릭합니다. 클러스터를 추가 변경하려면 Modify을(를) 클릭합니다.

MongoDB Ops Manager 를 사용하여 새 샤딩된 을 생성할 수 있습니다.

중요

1
2
3

샤드 키에는 상호 배타적인 두 가지 옵션이 있습니다.

  • 해시 샤드 키 를 사용하려면 hashed 을(를) 선택합니다. Advanced Settings 를 확장하여 선택적으로 컬렉션 의 문서 배포를 최적화할 수 있습니다. 최적화를 위해 다음을 수행할 수 있습니다.

    • 컬렉션 에 정의된 구역 및 구역 범위를 기반으로 비어 있거나 존재하지 않는 컬렉션 에 대해 초기 청크 생성 및 배포를 수행하려면 presplitHashedZones 확인란을 선택합니다.

    • 해시 샤드 키로 빈 컬렉션을 샤딩할 때 처음에 생성할 청크의 최소 개수를 지정합니다. 2 청크를 권장하지만 샤드당 최대 8192 개까지 지정할 수 있습니다. 이 설정은 샤드 컬렉션에 대한 MongoDB numInitialChunks 설정에 해당합니다.

    이러한 옵션에 학습 보려면 sh.shardCollection()을 참조하세요.

  • 고유한 키 이름을 사용하려면 Enforce Unique Key 을(를) 선택합니다.

샤드 키는 고유 하고 해시 될 수 없습니다.

4
  • 복합 샤드 키 에서 최대 하나의 키를 해시할 수 있습니다.

  • 고유한 키 이름을 사용하려면 Enforce Unique Key 을(를) 선택합니다.

복합 샤드 키는 3개 이상의 키를 포함할 수 없습니다.

중요

복합 샤드 키 해싱은 MongoDB 버전 4.4 부터 지원됩니다. 복합 샤드 키 를 해시하고 FCV 4.2 로 다운그레이드하려면 먼저 해시 된 키를 사용하여 샤딩된 컬렉션 을 삭제해야 합니다.

5

이 컬렉션에서 구역 샤딩을 사용하려면 범위를 사용하여 컬렉션을 샤딩하는 방법 정의 아래의 단계를 따르세요.

6
7
  • 변경 사항이 허용되면 Confirm and Deploy 을(를) 클릭합니다.

  • 변경 사항을 수정해야 하는 경우 Cancel 을 클릭하고 1 단계로 돌아갑니다.

참고

샤딩된 컬렉션에 구역 샤딩 을 사용하려는 경우 이 섹션의 다음 두 절차를 따르세요. 그렇지 않으면 이 섹션을 건너뛸 수 있습니다.

구역은 하나 이상의 샤드로 구성된 명명된 프로젝트 입니다. 하나 이상의 구역을 생성한 후 범위 샤드 키 값과 해당 문서를 구역 에 할당할 수 있습니다. MongoDB 는 최종적으로 지정된 범위 내의 문서를 관련 구역 으로 라우팅합니다. 각 구역 에는 여러 범위와 여러 샤드가 포함될 수 있습니다. 각 샤드 는 둘 이상의 구역 에 속할 수 있습니다. 각 샤드 는 이름 오른쪽에 Deployment 아래에 해당 구역 을 표시합니다.

1
2
3
4
5

태그가 지정된 범위 가 있는 샤드 구역 을 삭제 하려고 하면 실패합니다. 범위 태그가 지정된 구역 에서 마지막 샤드 를 제거 하려고 시도하는 경우에도 실패합니다. 해당 구역 에서 마지막 샤드 를 제거 하려면 먼저 태그가 지정된 모든 범위를 다른 구역 으로 이동해야 합니다.

6
  • 변경 사항이 허용되면 Confirm and Deploy 을(를) 클릭합니다.

  • 변경 사항을 수정해야 하는 경우 Cancel 을 클릭하고 1 단계로 돌아갑니다.

범위는 샤드 키의 각 필드에 대한 최소값과 최대값을 지정합니다. 정의된 각 범위는 단일 구역에 연결됩니다. MongoDB는 최종적으로 지정된 범위 내의 문서를 관련 영역으로 라우팅합니다. 최소값은 샤드 키 값의 포괄적 하한입니다. 최대값은 샤드 키 값의 배타적 상한입니다. 범위는 하나의 구역에만 속할 수 있지만 구역은 여러 범위를 가질 수 있습니다.

밸런서 가 범위를 원하는 구역으로 이동하면 구성된 구역 및 범위를 기반으로 문서가 라우팅됩니다. 이 문제가 발생하면 범위 내의 문서는 관련 구역으로 라우팅되고 범위 외부의 문서는 클러스터의 모든 샤드로 라우팅될 수 있습니다.

1

중요

샤딩을 자동화하면 자동화는 MongoDB Ops Manager 인터페이스를 통해 수행되지 않은 모든 구성 변경 사항을 되돌립니다.

자동화는 MongoDB Ops Manager를 통해 관리되지 않는 샤드 컬렉션의 어떤 것도 변경하지 않습니다.

2

복합 샤드 키는 구성 요소 샤드 키 하나 범위 를 갖지만 함께 사용하면 하나의 구역 에만 연결됩니다.

참고

샤드 키가 해시 필드가 있는 복합 샤드 키인 경우 해시 필드의 유효한 범위 값 유형은 다음과 같습니다.

  • NumberLong

  • minKey

  • maxKey

범위의 최소값은 포괄적이고 최대값은 제외됩니다.

예시

다음 두 범위는 겹치지 않습니다.

min
최대
영역

1

10

a

10

20

B

참고

MinMax 은 절대값으로, 특정 값을 명시적으로 나열하지 않은 모든 범위 의 절대 최소값과 최대값입니다.

각 범위 는 단일 구역 에만 연결할 수 있습니다. 둘 이상의 구역 에 동일한 범위 를 할당할 수 없습니다.

3

지정된 컬렉션 에 대해 샤드 키 범위를 추가할 수 있습니다.

이러한 방식으로 다른 구역에 동일한 범위를 할당할 수 없습니다.

4
5
  • 변경 사항이 허용되면 Confirm and Deploy 을(를) 클릭합니다.

  • 변경 사항을 수정해야 하는 경우 Cancel 을 클릭하고 1 단계로 돌아갑니다.

Unmanage를 클릭합니다.

중요

샤딩된 컬렉션 이 관리되지 않는 경우 샤딩된 컬렉션과 구역은 삭제 되지 않습니다 . 이러한 컬렉션과 구역은 더 이상 MongoDB Ops Manager 인터페이스에서 managed 할 수 없습니다.

다음

MongoDB Ops Manager