AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

mongosync 마이그레이션 제한점

경고

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

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

참고

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

  • mongosync does not support in-place server version upgrades or downgrades that change the major or minor version during a migration. mongosync does allow patch version upgrades. To learn more, see the server upgrade instructions.

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

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

  • system.* collections aren't replicated.

  • Documents that have dollar ($) prefixed field names aren't supported. See Field Names with Periods and Dollar Signs.

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

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

  • Atlas Infinite 클러스터는 지원되지 않습니다.

  • Queryable Encryption isn't supported.

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

  • Before you attempt to run mongosync with an M10+ Atlas cluster, disable the Require Indexes for All Queries option to set notablescan to false on both the source and destination clusters.

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

  • mongosync does not replicate applyOps operations made on the source cluster during sync to the destination cluster.

  • mongosync must read from the source cluster using the primary read preference.

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

  • mongosync does not support syncing Atlas Search Indexes.

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

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

  • mongosync does not support documents with duplicate field names. For details, see MongoDB does not support duplicate field names.

  • mongosync 는 충돌하는 네임스페이스 가 이미 포함된 대상 클러스터 로의 네임스페이스 마이그레이션을 지원 하지 않습니다.

  • mongosync 프로비저닝된 사용자가 없는 대상 클러스터를 지원 하지 않습니다.

  • MongoDB 8.0.20 이전 모든 버전에서, replace 작업이 $v (이)라는 이름의 필드를 문서에 추가하면, mongosync는 변경 이벤트 애플리케이션 중 복구할 수 없는 치명적 오류로 종료됩니다. 동기화를 재개하면 항상 동일한 오류로 실패합니다.

    이 문제를 해결하려면 대상에서 mongosync의 메타데이터 데이터베이스를 삭제하고 동기화를 처음부터 다시 시작하거나 소스 클러스터를 8.0.20+ 로 업그레이드합니다.

MongoDB Community 빌드로 Mongosync를 테스트하지 않으며, 대부분의 경우 Community 배포에서 MongoDB 를 지원 하지 않습니다. MongoDB Community Edition 과 함께 Mongosync를 사용하려면 MongoDB 영업 담당자에게 문의 요구 사항 및 개별화된 옵션을 논의하세요.

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

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

버전 1.22에 추가 되었습니다.

mongosync이(가) 마이그레이션을 시작하기 전에 대상 클러스터에서 사용 가능한 디스크 공간을 확인합니다. mongosync은 마이그레이션을 위해 선택한 소스 컬렉션과 인덱스의 온디스크 크기를 추정한 다음, 이 추정치를 데스티네이션 파일 시스템에서 사용 가능한 공간과 비교합니다. mongosync는 마이그레이션 동안의 스토리지 엔진 압축 차이, 인덱스 생성에 사용되는 임시 공간, 및 oplog 증가를 고려하기 위해 추정치에 1.25x 안전 계수를 적용합니다.

예상 필요 공간이 사용 가능 공간을 초과하면, /start은 InsufficientDestinationDiskSpace 오류를 반환합니다. 그리고 mongosync는 마이그레이션을 시작하지 않습니다. 오류를 해결하려면 대상 클러스터의 디스크 공간을 확보하고 /start을(를) 다시 호출합니다.

mongosync 파일 시스템 통계를 조회할 수 없는 대상에 대한 검사를 생략합니다.

중요

이 검사는 최대한 노력을 하는 보호 장치입니다. 마이그레이션이 대상 클러스터에 맞는지 보장하지 않습니다. 마이그레이션 중에 발생하는 변경 사항 및 mongosync이 대상 샤드에 디스크 공간을 분산하는 방식의 차이점 모두 예상에 영향을 미칩니다.

검사를 비활성화하려면 /start 요청에서 skipDiskSpaceCheck을 true (으)로 설정합니다. 마이그레이션에 사용할 수 있는 저장을 대상 파일 시스템 통계가 정확하게 대표하지 않을 경우 이 옵션을 사용합니다. 자세한 내용은 요청 본문 매개변수를 참조하세요.

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

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

  • mongosync doesn't support sync to or from global clusters.

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

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

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

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

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

  • The movePrimary command cannot be used to reassign the primary shard while syncing.

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

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

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

  • mongosync 이(가) 샤드 전체에서 일관되지 않은 인덱스 사양을 감지하면 치명적인 오류와 함께 종료됩니다. 불일치를 확인할 때 mongosync 는 ns 및 background 인덱스 필드를 무시합니다.

    참고

    To check for index inconsistencies, see Find Inconsistent Indexes Across Shards. This method surfaces ns and background field differences, which mongosync ignores when checking for inconsistencies.

  • If the source or destination cluster is a sharded cluster and you are not running mongosync with namespace filtering, you must disable the source cluster's balancer by running the balancerStop command and waiting 15 minutes for the command to complete.

    소스 또는 대상 클러스터 가 샤딩된 클러스터 이고 네임스페이스 필터링으로 mongosync 을(를) 실행 중인 경우, 소스 클러스터의 밸런서 전역적으로 활성화 할 수 있지만 네임스페이스 필터하다 내의 모든 컬렉션에 대해 비활성화해야 합니다. 필터링된 동기화에서 컬렉션에 대한 밸런서 비활성화를 참조하세요. 소스 클러스터의 밸런서 완전히 비활성화할 수도 있습니다.

    You must always disable the balancer on a sharded destination cluster by using balancerStop.

  • If you have enabled the source cluster's balancer, but disabled it for collections within the namespace filter, do not run shardCollection on collections within the namespace filter. If you run shardCollection on collections within the namespace filter during the migration, mongosync returns an error and stops, which requires you to start the migration from scratch.

  • mongosync doesn't support running the command transitionFromDedicatedConfigServer during execution.

  • You must not run the moveChunk and moveRange commands on the source or destination clusters.

  • The shard key cannot be refined while syncing.

  • The reshardCollection operations from the source cluster are not supported during sync.

  • The maximum number of indexes per sharded collection is 63, which is one less than the default limit of 64.

  • mongosync 샤딩된 클러스터에서 기본값 데이터 정렬이 아닌 컬렉션을 지원 하지 않습니다. 이는 샤딩된 컬렉션과 샤딩되지 않은 컬렉션 모두에 적용됩니다.

  • mongosync 일부 데이터 보유 샤드에서 일관성이 없거나 누락된 인덱스 오류입니다.

  • mongosync fails if there is a balancing window configured on the source or destination cluster.

  • mongosync 는 사전 구성된 샤드 구역 태그가 있는 대상 네임스페이스로의 마이그레이션을 지원 하지 않습니다. 마이그레이션 시작하기 전에 대상의 mongosync 가 마이그레이션 할 네임스페이스에서 모든 샤드 태그를 지정하다 범위 또는 구역을 제거 . 마이그레이션 COMMITTED 상태 에 도달한 후 원하는 구역 범위를 다시 추가할 수 있습니다.

  • 역방향 동기화를 완료하기 위해 /commit 엔드포인트를 호출하지 않으면 원래 소스 클러스터는 사용할 수 없는 중간 상태로 유지됩니다.

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

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

  • 소스 및 대상 클러스터는 동일한 MongoDB 주요 버전을 실행 해야 합니다.

  • To reverse direction, mongosync requires that all unique indexes on the source cluster (except for _id) do not have legacy unique index keys.
  • mongosync 는 여러 소스 클러스터를 하나의 대상 클러스터에 동기화하는 것을 지원하지 않습니다.

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

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

  • /start을(를) 호출할 때 preExistingDestinationData 매개변수를 true (으)로 설정하다 않는 한, 대상 클러스터 시작하기 전에 사용자 데이터를 포함하지 않아야 합니다.

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

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

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

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

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

  • To use the $out aggregation stage or the mapReduce command (when set to create or replace a collection) with filtering, you must configure the filter to use the entire database. You cannot limit the filter to collections within the database.

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

1.3.0부터 시작, Mongosync는 고정 사이즈 컬렉션 을 지원하지만 몇 가지 제한 사항이 있습니다.

1.20.0부터 시작, 마이그레이션 중에 새 고정 사이즈 컬렉션을 활성화하려면 mongosync 를 시작할 때 --enableCappedCollectionHandling 플래그를 전달해야 합니다.

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

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

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

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

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

Mongosync는 시스템 컬렉션 을 대상 클러스터에 복제하지 않습니다.

If you issue a dropDatabase command on the source cluster, this change is not directly applied on the destination cluster. Instead, Mongosync drops user collections and views in the database on the destination cluster, but it does not drop system collections on that database.

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

  • The drop operation does not affect a user-created system.js collection.

  • If you enable profiling, the system.profile collection remains.

  • If you create views on the source cluster and then drop the database, replicating the drop removes the views, but leaves an empty system.views collection.

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

When buildIndexes is set to "afterDataCopy", mongosync might fail to apply Rename DDL events. If this occurs, restart the migration from scratch with buildIndexes set to "beforeDataCopy" or "never". Setting buildIndexes to beforeDataCopy can increase the migration time, and setting buildIndexes to never requires you to build indexes manually after the migration completes.

mongosync does not support rolling index builds during migration. To avoid building indexes in a rolling fashion during migration, use one of the following methods to ensure that your destination indexes match your source indexes:

  • 마이그레이션 하기 전에 소스에 인덱스 를 빌드합니다.

  • 마이그레이션 중에 기본값 인덱스 빌드사용하여 소스에 인덱스 빌드합니다.

  • 마이그레이션 후 대상에 인덱스 를 빌드합니다.

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

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

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

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

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

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

  • 복제본 세트 에서 샤딩된 클러스터 로 마이그레이션할 때는 샤딩 옵션에서 지정한 소스 컬렉션의 이름을 변경할 수 없습니다. CEA 단계에서 샤딩 옵션에 포함된 컬렉션의 이름을 변경하면 검증자가 샤딩 불일치를 보고합니다.

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

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

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

  • 고정 사이즈 컬렉션

  • 마이그레이션 중에 추가되거나 삭제되는 TTL 인덱스를 포함하여 TTL 인덱스가 있는 컬렉션

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

지원되지 않는 컬렉션을 확인하려면 추가 스크립트 코드를 추가하여 컬렉션을 검사합니다. 자세한 내용은 데이터 전송 확인을 참조하세요.

참고

Starting in version 1.10, the verifier checks for data inconsistencies from a DDL event that occurred on the pre-6.0 source cluster during migration. This is because pre-6.0 migrations do not support DDL events.

To learn more, see Pre-6.0 Migration Limitations.

mongosync 는 MongoDB 8.0에 도입된 영구 쿼리 설정(PQS)을 마이그레이션 하지 않습니다. 소스 클러스터 에서 PQS를 사용하는 경우 수동으로 마이그레이션해야 합니다.

1.10부터 mongosync 는 6.0 이전 MongoDB 서버 버전을 실행 소스 클러스터에서의 마이그레이션을 지원합니다. 지원되는 마이그레이션 경로에 대한 자세한 내용은 MongoDB Server 버전 호환성을 참조하세요.

6.0 이전 버전에는 다음과 같은 제한 사항이 적용 . 마이그레이션:

  • The source cluster cannot have orphaned documents. To clean up any orphaned documents, run the cleanupOrphaned command on the mongod instances on every shard's primary node on their source cluster. Wait for this command to complete with a status {ok:1} before starting the migration.

  • DDL 이벤트를 생성하는 쓰기는 마이그레이션 중에는 소스 클러스터 에서 발생할 수 없습니다. 다음 이벤트는 발생할 수 없습니다.

    • collMod

    • create

    • createIndexes

    • drop

    • dropDatabase

    • dropIndexes

    • refineCollectionShardKey

    • rename

    • reshardCollection

    • shardCollection

    This includes operations that may create new collections such as mapReduce, $out, and $merge. This also includes collections created implicitly from inserts. Only writes that produce CRUD events can occur during the migration.

    참고

    네임스페이스 필터하다 외부의 소스 컬렉션에서 DDL 이벤트를 생성하는 쓰기가 허용됩니다.

  • geoHaystack 인덱스는 지원되지 않습니다.

  • /reverse 엔드포인트는 지원되지 않습니다. /start 요청 에서 옵션을 활성화 수 없습니다.reversible

  • /commit 엔드포인트를 호출한 후 소스 클러스터 에 쓰기가 이루어지지 않았는지 확인합니다.

  • 샤딩 매개변수를 활성화 수 createSupportingIndexes 없습니다. 대신 소스 클러스터 에서 샤드 키 지원 인덱스 생성합니다.

  • If there are any indexes with inconsistent specs or that are missing on one or more shards, mongosync returns an error. To check for index inconsistencies, see Find Inconsistent Indexes Across Shards.