Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/
MongoDB Mongosync
/ /

Embedded Verifier로 확인

버전 1.9에 새로 추가되었습니다.

mongosync 에는 지원되는 컬렉션의 동기화 를 확인하기 위해 대상 클러스터 에서 일련의 검사를 수행하는 임베디드 검증기가 포함되어 있습니다. mongosync 은(는 ) 복제본 세트 클러스터에서 기본값 으로 검증자를 활성화합니다.

버전 1.10부터 mongosync 는 샤딩된 클러스터에서 기본값 으로 검증자를 활성화합니다.

참고

mongosync 읽기 설정 (read preference) 사용하여 읽기 때문에 소스 클러스터의 프라이머리 노드 에서 문서 필드 순서를 유지합니다.primary 또한 내장된 검증자는 소스 클러스터의 프라이머리 노드 mongosync 가 문서를 읽는 시점과 다른 시점을 기준으로 문서를 확인합니다. 이로 인해 드문 경우지만 소스 클러스터의 노드 간에 문서 필드 순서가 일치하지 않으면 mongosync 이(가) 문서를 올바르게 복사했더라도 내장된 검증기가 마이그레이션 에 실패할 수 있습니다.

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

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

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

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

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

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

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

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

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

  • 고정 사이즈 컬렉션

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

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

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

참고

버전 부터 검증자는 이전 버전에서 1.10 발생한 DDL 이벤트 의 데이터 불일치를 확인합니다.6.0 마이그레이션 중 소스 클러스터 . 이는6.0 마이그레이션은 DDL 이벤트를 지원 하지 않습니다.

6.0 자세한 학습 마이그레이션 전 제한 사항을 참조하세요.

1

mongosync 프로세스 초기화합니다.

./bin/mongosync \
--logPath /var/log/mongosync \
--cluster0 "mongodb://clusterAdmin:superSecret@clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020" \
--cluster1 "mongodb://clusterAdmin:superSecret@clusterTwo01.fancyCorp.com:20020,clusterTwo02.fancyCorp.com:20020,clusterTwo03.fancyCorp.com:20020"
2

소스 클러스터 에서 대상 클러스터로의 데이터 동기화를 시작하려면 /start 엔드포인트를 사용하세요.

curl localhost:27182/api/v1/start -XPOST \
--data ' {
"source": "cluster0",
"destination": "cluster1",
} '

출력 예시:

{"success":true}
3

동기화 상태를 검사하려면 /progress 엔드포인트를 사용합니다.

curl localhost:27182/api/v1/progress -XGET

출력 예시:

{
"progress":
{
"state":"RUNNING",
"canCommit":true,
"canWrite":false,
"info":"change event application",
"lagTimeSeconds":0,
"collectionCopy":
{
"estimatedTotalBytes":694,
"estimatedCopiedBytes":694
},
"directionMapping":
{
"Source":"cluster0: localhost:27017",
"Destination":"cluster1: localhost:27018"
},
"verification":
{
"source":
{
"estimatedDocumentCount": 42,
"hashedDocumentCount": 42,
"lagTimeSeconds": 2,
"totalCollectionCount": 42,
"scannedCollectionCount": 10,
"phase": "stream hashing"
},
"destination": {
"estimatedDocumentCount": 42,
"hashedDocumentCount": 42,
"lagTimeSeconds": 2,
"totalCollectionCount": 42,
"scannedCollectionCount": 10,
"phase": "stream hashing"
}
}
},
"success": true
}

내장된 검증자의 상태에 대한 정보는 verification 응답 필드 검사합니다.

내장된 검증 도구는 대상 클러스터 에 대해 일련의 검사를 수행합니다. 지원되는 모든 컬렉션을 확인하여 mongosync 이(가 ) 소스 클러스터 에서 대상으로 문서를 성공적인 전송했는지 확인합니다.

검증자에게 오류가 발생하면 오류와 함께 마이그레이션 이 실패합니다. 검증자가 오류를 찾지 못하면 /progress 엔드포인트는 canWrite: true을 반환합니다. 필드 에 canWrite 대해 자세히 학습 canWrite 및 COMMITTED를 참조하세요.

버전 1.15부터 내장된 검증자는 컬렉션 메타데이터, 인덱스 및 뷰를 검사합니다. 검증자가 메타데이터 검증 중에 불일치를 발견하면 불일치 유형과 해당 발생 횟수가 포함된 오류를 반환합니다.

확인 문제를 조사하려면 지원 문의 하세요.

검증에는 마이그레이션 시 문서 1 백만 개당 10 GB 의 메모리와 추가 500 MB가 필요합니다.

사용 가능한 메모리가 충분하지 않으면 /start 엔드포인트가 오류를 반환합니다. 이 경우 mongosync 을 검증자와 함께 사용하려면 먼저 서버 의 메모리를 늘리고 마이그레이션 재개해야 합니다.

서버 메모리를 늘릴 수 mongosync 없는 경우 검증기를 비활성화한 상태에서 를 다시 시작합니다.

돌아가기

데이터 전송 확인

이 페이지의 내용