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

Embedded Verifier로 확인

이 페이지의 내용

  • 이 작업에 대하여
  • 단계
  • 행동
  • 자세히 알아보기

mongosync 에는 지원되는 컬렉션의 동기화 를 확인하기 위해 대상 클러스터 에서 일련의 검사를 수행하는 임베디드 검증기가 포함되어 있습니다.

중요

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

  • 고정 사이즈 컬렉션

  • TTL 인덱스가 있는 컬렉션

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

  • 조회수

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

  • 컬렉션 메타데이터

  • Indexes

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

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

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

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

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

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

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

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

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

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

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

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

  • 고정 사이즈 컬렉션

  • TTL 인덱스가 있는 컬렉션

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

  • 조회수

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

  • 컬렉션 메타데이터

  • Indexes

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

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 이(가) 소스 클러스터 에서 대상으로 문서를 성공적인 으로 전송했는지 확인합니다.

검증자에게 오류가 발생하면 오류와 함께 마이그레이션 이 실패합니다. 검증자가 오류를 찾지 못하면 mongosyncCOMMITTED 상태 로 전환됩니다.

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

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

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

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

돌아가기

데이터 전송 확인