Docs Menu
Docs Home
/
MongoDB Cluster-to-Cluster Sync
/

제한 사항

이 페이지의 내용

  • 일반적인 제한 사항
  • MongoDB Community 에디션
  • 지원되지 않는 컬렉션 유형
  • 샤딩된 클러스터
  • 반전
  • 다중 클러스터
  • 동기화 필터링
  • 고정 사이즈 컬렉션
  • 시스템 컬렉션
  • 롤링 인덱스 빌드
  • 임베디드 검증자

경고

mongosync 는 문서화된 제한 사항의 준수 여부를 확인하지 않습니다. 애플리케이션이 제한 사항의 영향을 받지 않는지 확인하세요. 이 제한 사항 중 하나가 있는 상태에서 mongosync를 실행하면 대상 클러스터에서 정의되지 않은 동작이 발생할 수 있습니다.

마이그레이션 이 일시 중지되거나 중지된 시점(마이그레이션이 다시 시작되는 경우 포함)을 포함하여 마이그레이션 의 전체 기간 동안 이러한 제한 사항을 준수해야 합니다.

참고

MongoDB 서버 호환성에 대한 자세한 내용은 MongoDB Server 버전 호환성을 참조하세요.

  • mongosync 은(는) 마이그레이션 중에 메이저 또는 마이너 버전을 변경하는 현재 위치 서버 버전mongosync 업그레이드를 지원 하지 않습니다. 은(는) 패치 버전 업그레이드를 허용합니다.학습 내용은 서버 업그레이드 지침을 참조하세요.

  • 대상 클러스터는 비어 있어야 합니다.

  • mongosync 는 클러스터 또는 환경이 올바르게 구성되었는지 확인하지 않습니다.

  • mongosync가 실행되는 동안 다른 클라이언트는 대상 클러스터에 쓰지 작업을 수행하지 않아야 합니다

  • 커밋 프로세스 를 시작하려는데 enableUserWriteBlocking true 엔드포인트를 사용할 때 을(를)(으)로 설정하다 하지 않은 start 경우, 커밋 프로세스 를 시작하기 전에 소스 클러스터 에 대한 쓰기를 방지해야 합니다.

  • system.* 컬렉션은 복제되지 않습니다.

  • 필드 이름 앞에 달러 기호($)가 붙은 문서는 지원되지 않습니다. 마침표 및 달러 기호가 있는 필드 이름을 참조하세요.

  • 서버리스 클러스터는 지원되지 않습니다.

  • MongoDB 공유 티어는 지원되지 않습니다.

  • Queryable Encryption은 지원되지 않습니다.

  • 동일한 필드에 고유 인덱스 및 비고유 인덱스가 있는 컬렉션은 동기화할 수 없습니다.

  • M10+ Atlas 클러스터를 사용하여 mongosync를 실행하기 전에 Require Indexes for All Queries 옵션을 비활성화합니다.

  • mongosync 는 사용자나 역할을 동기화하지 않습니다.

  • mongosync 대상 클러스터에 동기화하는 동안 소스 클러스터에서 수행된 applyOps 작업을 복제하지 않습니다.

  • mongosync primary 읽기 설정을 사용하여 소스 클러스터에서 읽어야 합니다.

  • mongosync 은(는) 현재 MongoDB 버전을 업그레이드 중인 소스 또는 대상 클러스터를 지원하지 않습니다.

  • mongosync Atlas Search 인덱스 동기화를 지원하지 않습니다.

  • mongosync WiredTiger 스토리지 엔진 을 사용하는 클러스터만 지원합니다.

  • 컬렉션 을6.0 이전 소스 클러스터의 Timestamp(0,0) 와 같이 빈 타임스탬프가 있는 문서와 동기화 할 수 없습니다.

MongoDB는 Community 빌드에서 Cluster-to-Cluster Sync를 테스트하지 않으며, 대부분의 경우 Community 배포를 통한 Cluster-to-Cluster Sync 지원을 제공하지 않습니다. MongoDB Community Edition에 Cluster-to-Cluster Sync를 사용하려면 MongoDB 영업 담당자에게 연락하여 요건 및 맞춤형 옵션을 문의하세요.

  • Time-series 컬렉션은 지원되지 않습니다.

  • expireAfterSeconds가 설정된 클러스터형 컬렉션은 지원되지 않습니다.

  • mongosync 는 샤딩된 클러스터에서 복제본 세트로의 동기화를 지원하지 않습니다.

  • mongosync 하나 이상의 중재자가 있는 샤딩된 클러스터 토폴로지 에 대한 동기화 를 지원 하지 않습니다.

  • mongosync 글로벌 클러스터와의 동기화 를 지원 하지 않습니다.

  • 복제본 세트에서 샤딩된 클러스터로의 동기화에는 다음과 같은 제한 사항이 있습니다.

    • mongosync 사용자가 동기화 중에 sharding.shardingEntries 옵션에 포함된 컬렉션의 이름을 바꿀 수 있도록 허용하지만 몇 가지 제한 사항이 있습니다. 자세한 내용은 동기화 중 이름 변경을 참조하세요.

    • sharding.createSupportingIndexes 옵션을 사용하면 동기화 중에 대상 클러스터 에 인덱스가 자동으로 생성됩니다. 이후에는 소스 클러스터 에서 이러한 인덱스를 생성할 수 없습니다.

    • 샤드 키를 지원 하는 인덱스 를 수동으로 생성하려면 mongosync 가 시작되기 전 또는 마이그레이션 이 완료되고 mongosync 가 중지된 후에 인덱스 를 생성해야 합니다.

  • 컬렉션 내에서 _id 필드는 클러스터의 모든 샤드에서 고유해야 합니다. 자세한 내용은 샤딩된 클러스터 및 고유 인덱스를 참조하세요.

  • movePrimary 명령은 동기화 중에 프라이머리 샤드를 재할당하는 데 사용할 수 없습니다.

  • 구역 구성에 대한 복제는 없습니다. mongosync는 데이터를 복제하지만 구역을 상속하지 않습니다.

  • 동기화 중에는 샤드를 추가하거나 제거할 수 없습니다.

  • mongosync 는 모든 샤드에 존재하는 인덱스만 동기화합니다.

  • mongosync 는 모든 샤드에서 일관된 인덱스 사양을 갖는 인덱스만 동기화합니다.

    참고

    인덱스가 일치하지 않는지 확인하려면 전체 샤드에서 일관성 없는 인덱스 찾기를 참조하세요.

  • 마이그레이션의 전체 수명 동안 샤드된 소스 및 대상 클러스터에서 밸런서를 중지해야 합니다. 밸런서를 중지하려면 balancerStop 명령을 실행하고 명령이 완료될 때까지 기다립니다.

    참고

    밸런서를 중지한 후에는 15분 정도 기다린 다음 mongosync를 시작하세요. 이렇게 하면 클러스터가 진행 중인 청크 마이그레이션을 완료할 시간을 확보할 수 있습니다.

  • 소스 또는 대상 클러스터에서 moveChunkmoveRange 명령을 실행하지 않아야 합니다.

  • 동기화 중에는 샤드 키를 세분화할 수 없습니다.

  • 동기화 중에는 소스 클러스터의 reshardCollection 작업이 지원되지 않습니다.

  • 샤딩된 컬렉션당 최대 인덱스 수는 63개로, 기본 제한인 64개보다 1개가 적습니다.

  • mongosync 는 기본 데이터 정렬 설정이 있는 샤드 컬렉션의 동기화만 지원합니다.

  • 이전 소스에 샤드에 부분적으로 분산된 고유 인덱스가 있는 경우, 이를 되돌리면 오류가 발생할 수 있습니다. 되돌리기 전에 모든 샤드에 고유 인덱스가 있는지 확인합니다.

  • 소스 클러스터와 대상 클러스터에는 동일한 수의 샤드가 있어야 합니다. 클러스터에 다른 토폴로지나 주요 버전이 있는 경우 역동기화할 수 없습니다.

  • mongosync 는 여러 소스 클러스터를 하나의 대상 클러스터에 동기화하는 것을 지원하지 않습니다.

  • 한 클러스터가 동시에 한 mongosync 인스턴스의 소스 클러스터와 다른 mongosync 인스턴스의 대상 클러스터가 될 수는 없습니다.

  • 역동기화에서는 필터링이 지원되지 않습니다.

  • 시작하기 전에 대상 클러스터에 사용자 데이터가 포함되어 있지 않아야 합니다.

  • 시작하기 전에 대상 클러스터에 mongosync_reserved_for_internal_use 시스템 데이터베이스가 포함되어 있지 않아야 합니다.

  • 사용 중인 필터는 수정할 수 없습니다. 새 필터를 만들려면 기존 필터 대체하기를 참조하세요.

  • 컬렉션 이름은 특정 상황에서만 변경할 수 있습니다. 자세한 내용은 컬렉션 추가 및 이름 바꾸기를 참조하세요.

  • 필터에 보기가 포함되어 있지만 기본 컬렉션은 포함되지 않은 경우 보기 메타데이터만 대상 클러스터에 동기화됩니다. 보기 문서를 포함하려면 기본 컬렉션도 동기화해야 합니다.

  • 필터에 시스템 컬렉션이나 시스템 데이터베이스를 지정할 수 없습니다.

  • 필터링과 함께 $out 집계 단계 또는 mapReduce 명령(컬렉션을 만들거나 대체하도록 설정된 경우)을 사용하려면 전체 데이터베이스를 사용하도록 필터를 구성해야 합니다. 필터를 데이터베이스 내의 컬렉션으로 제한할 수 없습니다.

    자세한 내용은 mapReduce 및 $out로 필터링하기를 참조하세요.

1.3.0부터 Cluster-to-Cluster Sync는 고정 사이즈 컬렉션을 지원하지만 일부 제한이 있습니다 .

원본 클러스터의 제한된 컬렉션은 동기화 중에 정상적으로 작동합니다.

대상 클러스터의 제한된 컬렉션에는 동기화 중에 일시적인 변경 사항이 있습니다.

  • 최대 문서 수에는 제한이 없습니다.

  • 최대 컬렉션 크기는 1PB입니다.

mongosync 커밋 중 최대 문서 수 및 최대 문서 크기에 대한 원래 값을 복원합니다.

Cluster-to-Cluster Sync는 system collections 대상 클러스터에 복제하지 않습니다.

소스 클러스터에서 dropDatabase 명령을 실행하는 경우 이 변경 사항은 대상 클러스터에 직접 적용되지 않습니다. 대신 Cluster-to-Cluster Sync는 대상 클러스터의 데이터베이스에서 사용자 컬렉션 및 뷰를 삭제하지만 해당 데이터베이스의 시스템 컬렉션은 삭제하지 않습니다.

예를 들어, 대상 클러스터에서:

  • 제거 작업은 사용자가 만든 system.js 컬렉션에 영향을 주지 않습니다.

  • 프로파일링을 활성화하면 system.profile 컬렉션은 그대로 유지됩니다.

  • 소스 클러스터에서 뷰를 만든 후 데이터베이스를 제거하는 경우, 제거를 복제하면 뷰는 제거되지만 빈 system.views 컬렉션이 남습니다.

이 경우 을(를) 복제하면 dropDatabase 사용자가 생성한 컬렉션이 데이터베이스에서 전부 제거되지만, 시스템 컬렉션은 대상 클러스터에 남습니다.

mongosync 마이그레이션 중에는 롤링 인덱스 빌드를 지원 하지 않습니다. 마이그레이션 중에 인덱스가 롤링 방식으로 빌드되지 않도록 하려면 다음 방법 중 하나를 사용하여 대상 인덱스가 소스 인덱스와 일치하는지 확인합니다.

1.9부터 mongosync 는 내장된 검증자를 사용하여 소스 클러스터 에서 대상 클러스터 로 컬렉션이 성공적인 동기화 되었는지 확인할 수 있습니다.

내장된 검증자는 mongosync 1.8 이전 버전에서는 사용할 수 없습니다.

다른 확인 방법은 데이터 전송 확인을 참조하세요.

내장된 검증자에는 다음과 같은 제한 사항이 있습니다.

  • 검증자는 샤딩된 클러스터를 지원 하지 않습니다. 마이그레이션 에 샤딩된 클러스터 가 포함된 경우 mongosync 는 검증자를 비활성화합니다.

  • mongosync 검증자 상태 를 메모리에 저장하므로 상당한 메모리 오버헤드 가 발생할 수 있습니다. 검증자를 실행 하려면 mongosync 에 약 10 GB 의 메모리와 문서 1 백만 개당 추가 500 MB가 필요합니다.

  • 검증자를 재개할 수 없습니다. 어떤 이유로든 사용자가 동기화 를 중지하거나 일시 중지했다가 mongosync 를 다시 시작하면 확인 프로세스 가 처음부터 다시 시작됩니다. 이로 인해 검증이 마이그레이션 보다 훨씬 늦어질 수 있습니다.

  • /reverse 엔드포인트는 검증자를 비활성화합니다. /reverse 엔드포인트를 추가로 호출한 후에도 비활성화된 상태로 유지됩니다.

  • 확인을 활성화하고 buildIndexes 을(를) never(으)로 설정하다 한 상태에서 동기화 를 시작하면 mongosync 이(가) 소스 클러스터 에서 TTL 컬렉션 을 찾으면 마이그레이션 이 실패합니다. 이는 /start 엔드포인트를 호출한 후 또는 훨씬 나중에 발생할 수 있습니다(예: 마이그레이션 이 진행 중인 동안 사용자가 소스 클러스터 에 TTL 인덱스 를 생성하는 경우).

    대상 클러스터 에 인덱스를 구축하지 않고 TTL 컬렉션을 동기화 하려면 검증기를 비활성화한 상태에서 동기화 를 시작해야 합니다.

검증자는 다음 네임스페이스를 확인하지 않습니다.

  • 고정 사이즈 컬렉션

  • TTL 인덱스가 있는 컬렉션

  • 기본값 데이터 정렬을 사용하지 않는 컬렉션

  • 조회수

검증자는 다음 컬렉션 기능을 확인하지 않습니다.

  • 컬렉션 메타데이터

  • Indexes

위의 데이터와 메타데이터 데이터를 확인하려면 이러한 컬렉션 및 컬렉션 기능에 대한 추가 검사를 스크립트 로 작성합니다. 자세한 내용은 데이터 전송 확인을 참조하세요.

돌아가기

역동기화 방향