mongosync 과 버전을 업그레이드 방법에 대한 mongosync 지침은 최신 문서를 참조하세요.경고
mongosync 는 문서화된 제한 사항의 준수 여부를 확인하지 않습니다. 애플리케이션이 제한 사항의 영향을 받지 않는지 확인하세요. 이 제한 사항 중 하나가 있는 상태에서 mongosync를 실행하면 대상 클러스터에서 정의되지 않은 동작이 발생할 수 있습니다.
마이그레이션이 일시 중지되거나 중지된 시점( 마이그레이션 이 다시 시작되는 경우 포함)을 포함하여 마이그레이션 의 전체 기간 동안 이러한 제한 사항을 준수해야 합니다.
일반적인 제한 사항
참고
MongoDB 서버 호환성에 대한 자세한 내용은 MongoDB Server 버전 호환성을 참조하세요.
mongosync마이그레이션 중에 메이저 또는 마이너 버전을 변경하는 현재 위치 서버 버전 업그레이드를 지원 하지 않습니다.mongosync은(는) 패치 버전 업그레이드를 허용합니다. 자세한 학습 은 서버 업그레이드 지침을 참조하세요.대상 클러스터는 비어 있어야 합니다.
mongosync는 클러스터 또는 환경이 올바르게 구성되었는지 확인하지 않습니다.mongosync가 실행되는 동안 다른 클라이언트는 대상 클러스터에 쓰지 작업을 수행하지 않아야 합니다커밋 프로세스 시작하려는데
enableUserWriteBlockingtrue엔드포인트를 사용할 때 을(를)(으)로 설정하다 하지 않은start경우, 커밋 프로세스 시작하기 전에 소스 클러스터 에 대한 쓰기를 방지해야 합니다.system.* 컬렉션은 복제되지 않습니다.
필드 이름 앞에 달러 기호(
$)가 붙은 문서는 지원되지 않습니다. 마침표 및 달러 기호가 있는 필드 이름을 참조하세요.서버리스 클러스터는 지원되지 않습니다.
MongoDB 공유 티어는 지원되지 않습니다.
Queryable Encryption은 지원되지 않습니다.
동일한 필드에 고유 인덱스 및 비고유 인덱스가 있는 컬렉션은 동기화할 수 없습니다.
M10+Atlas 클러스터를 사용하여mongosync를 실행하기 전에 Require Indexes for All Queries 옵션을 비활성화합니다.mongosync는 사용자나 역할을 동기화하지 않습니다.mongosync대상 클러스터에 동기화하는 동안 소스 클러스터에서 수행된applyOps작업을 복제하지 않습니다.mongosyncprimary읽기 설정을 사용하여 소스 클러스터에서 읽어야 합니다.mongosync은(는) 현재 MongoDB 버전을 업그레이드 중인 소스 또는 대상 클러스터를 지원하지 않습니다.mongosyncAtlas Search 인덱스 동기화를 지원하지 않습니다.mongosyncWiredTiger 스토리지 엔진 을 사용하는 클러스터만 지원합니다.Timestamp(0,0)과 같이 빈 타임스탬프가 있는 문서와 컬렉션을 동기화할 수 없습니다.
MongoDB Community 에디션
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를 시작하세요. 이렇게 하면 클러스터가 진행 중인 청크 마이그레이션을 완료할 시간을 확보할 수 있습니다.동기화 중에는 샤드 키를 세분화할 수 없습니다.
동기화 중에는 소스 클러스터의
reshardCollection작업이 지원되지 않습니다.샤딩된 컬렉션당 최대 인덱스 수는 63개로, 기본 제한인 64개보다 1개가 적습니다.
mongosync는 기본 데이터 정렬 설정이 있는 샤드 컬렉션의 동기화만 지원합니다.
반전
이전 소스에 샤드에 부분적으로 분산된 고유 인덱스가 있는 경우, 이를 되돌리면 오류가 발생할 수 있습니다. 되돌리기 전에 모든 샤드에 고유 인덱스가 있는지 확인합니다.
소스 클러스터와 대상 클러스터에는 동일한 수의 샤드가 있어야 합니다. 클러스터에 다른 토폴로지나 주요 버전이 있는 경우 역동기화할 수 없습니다.
다중 클러스터
mongosync는 여러 소스 클러스터를 하나의 대상 클러스터에 동기화하는 것을 지원하지 않습니다.한 클러스터가 동시에 한
mongosync인스턴스의 소스 클러스터와 다른mongosync인스턴스의 대상 클러스터가 될 수는 없습니다.
동기화 필터링
역동기화에서는 필터링이 지원되지 않습니다.
시작하기 전에 대상 클러스터에 사용자 데이터가 포함되어 있지 않아야 합니다.
시작하기 전에 대상 클러스터에
mongosync_reserved_for_internal_use시스템 데이터베이스가 포함되어 있지 않아야 합니다.사용 중인 필터는 수정할 수 없습니다. 새 필터를 만들려면 기존 필터 대체하기를 참조하세요.
컬렉션 이름은 특정 상황에서만 변경할 수 있습니다. 자세한 내용은 컬렉션 추가 및 이름 바꾸기를 참조하세요.
필터에 보기가 포함되어 있지만 기본 컬렉션은 포함되지 않은 경우 보기 메타데이터만 대상 클러스터에 동기화됩니다. 보기 문서를 포함하려면 기본 컬렉션도 동기화해야 합니다.
필터에 시스템 컬렉션이나 시스템 데이터베이스를 지정할 수 없습니다.
필터링과 함께
$out집계 단계 또는mapReduce명령(컬렉션을 만들거나 대체하도록 설정된 경우)을 사용하려면 전체 데이터베이스를 사용하도록 필터를 구성해야 합니다. 필터를 데이터베이스 내의 컬렉션으로 제한할 수 없습니다.자세한 내용은 mapReduce 및 $out로 필터링하기를 참조하세요.
고정 사이즈 컬렉션
1.3.0부터 Cluster-to-Cluster Sync는 고정 사이즈 컬렉션을 지원하지만 일부 제한이 있습니다 .
convertToCapped는 지원되지 않습니다.convertToCapped를 실행하면mongosync가 오류와 함께 종료됩니다.cloneCollectionAsCapped은(는) 지원되지 않습니다.
원본 클러스터의 제한된 컬렉션은 동기화 중에 정상적으로 작동합니다.
대상 클러스터의 제한된 컬렉션에는 동기화 중에 일시적인 변경 사항이 있습니다.
최대 문서 수에는 제한이 없습니다.
최대 컬렉션 크기는 1PB입니다.
mongosync 커밋 중 최대 문서 수 및 최대 문서 크기에 대한 원래 값을 복원합니다.
시스템 컬렉션
Cluster-to-Cluster Sync는 system collections 대상 클러스터에 복제하지 않습니다.
소스 클러스터에서 dropDatabase 명령을 실행하는 경우 이 변경 사항은 대상 클러스터에 직접 적용되지 않습니다. 대신 Cluster-to-Cluster Sync는 대상 클러스터의 데이터베이스에서 사용자 컬렉션 및 뷰를 삭제하지만 해당 데이터베이스의 시스템 컬렉션은 삭제하지 않습니다.
예를 들어, 대상 클러스터에서:
제거 작업은 사용자가 만든
system.js컬렉션에 영향을 주지 않습니다.프로파일링을 활성화하면
system.profile컬렉션은 그대로 유지됩니다.소스 클러스터에서 뷰를 만든 후 데이터베이스를 제거하는 경우, 제거를 복제하면 뷰는 제거되지만 빈
system.views컬렉션이 남습니다.
이 경우 을(를) 복제하면 dropDatabase 사용자가 생성한 컬렉션이 데이터베이스에서 전부 제거되지만, 시스템 컬렉션은 대상 클러스터에 남습니다.
롤링 인덱스 빌드
mongosync 마이그레이션 중에는 롤링 인덱스 빌드를 지원 하지 않습니다. 마이그레이션 중에 인덱스가 롤링 방식으로 빌드되지 않도록 하려면 다음 방법 중 하나를 사용하여 대상 인덱스가 소스 인덱스와 일치하는지 확인합니다.
마이그레이션 하기 전에 소스에 인덱스 를 빌드합니다.
마이그레이션 중에 기본값 인덱스 빌드 를 사용하여 소스에 인덱스 를 빌드합니다.
마이그레이션 후 대상에 인덱스 를 빌드합니다.