문서 메뉴

문서 홈Cluster-to-Cluster Sync

Cluster-to-Cluster Sync 빠른 시작

이 페이지의 내용

  • 개요
  • 설정
  • 소스 및 대상 cluster 정의
  • 관리 사용자 정의
  • 다운로드 및 설치 mongosync
  • cluster 연결
  • 연결 문자열 형식 지정
  • mongosync 초기화
  • 초기화 참고 사항
  • cluster 간 데이터 동기화
  • 일회성 동기화
  • 데이터 검증
  • 동기화 참고 사항

MongoDB Cluster-to-Cluster Sync는 MongoDB cluster를 연결하고 클러스터 간에 데이터를 동기화하는 방법을 제공합니다. 연결하는 도구는 mongosync 입니다. 이 페이지에서는 Cluster-to-Cluster Sync를 시작하는 데 도움이 되는 간략한 소개를 제공합니다. 자세한 내용은 나머지 Cluster-to-Cluster Sync 설명서를 참조하세요.

mongosync 두 cluster 간의 데이터를 동기화합니다.

아래 지침에 따라 Cluster-to-Cluster Sync를 설정하고, cluster를 연결하고, 데이터를 동기화하세요.

1

자체 관리형 또는 MongoDB Atlas 에서 호스팅되는 MongoDB 클러스터가 이미 있는 경우 해당 클러스터를 소스 클러스터로 사용하세요. 사용할 클러스터가 없는 경우 클러스터를 만들어야 합니다.

이 빠른 시작은 대상 cluster와 소스 클러스터가 모두 복제본 세트일 때 작동합니다. 복제본 세트에서 cluster로 또는 cluster 간에 동기화하려면 cluster에서 mongosync 사용을 참조하세요.

다음도 참조하세요.

MongoDB Server 버전 호환성 또는 버전 간 마이그레이션에 대한 자세한 내용은 MongoDB Server 버전 호환성 및 지원을 참조하세요.

대상 복제본 세트의 노드 수가 소스 복제본 세트의 노드 수와 같을 필요는 없습니다.

cluster가 자체 managed인 경우, MongoDB Enterprise cluster여야 합니다. Cluster-to-Cluster Sync는 제한된 수의 경우에만 MongoDB Community Edition에서 지원됩니다. MongoDB Community Edition에서 Cluster-to-Cluster Sync를 사용하는 방법에 대한 자세한 내용은 MongoDB 영업 담당자에게 문의하세요.

클러스터 생성은 이 가이드의 범위를 벗어납니다. 도움이 필요한 경우 설명서를 참조하여 Atlas 클러스터 를 생성하거나 자체 관리형 클러스터를 생성하세요.

2

두 cluster 중 하나가 Atlas에서 호스팅되거나 둘 중 하나에 인증이 필요한 경우 두 cluster에서 모두 권한이 있는 데이터베이스 사용자를 생성해야 합니다.

소스 사용자는 다음 역할이 있어야 합니다.

또한 소스 사용자는 다음을 수행할 수 있어야 합니다.

소스 클러스터가 Atlas에서 호스팅되는 경우, 사용자에게 Atlas 관리자 역할이 있어야 합니다. 또한 사용자는 클러스터의 변경 스트림 을 읽을 수 있어야 합니다.

대상 클러스터가 Atlas에서 호스팅되는 경우 사용자는 Atlas 관리자 역할이 있어야 합니다.

3

mongosync 은(는) 소스 cluster와 대상 cluster를 연결하는 도구입니다. 자체 hardware에서 mongosync 를 호스팅할 수 있지만 mongosync 는 MongodDB cluster를 호스팅하는 hardware에서 실행할 필요가 없습니다.

mongosync 을(를) 설치하려면 다음을 수행합니다.

  1. 소스 및 대상 cluster에 네트워크로 연결되어 있는 mongosync 실행 파일의 서버를 찾습니다.

  2. MongoDB 다운로드 센터로 이동합니다.

  3. 호스트 시스템에 맞는 mongosync 패키지를 다운로드합니다.

  4. mongosync 패키지의 압축을 풉니다. mongosync 실행 파일은 bin 디렉토리에 있습니다.

운영 체제별 설치 지침은 설치를 참조하세요.

1

연결 문자열에는 mongosync 이(가) 소스 및 대상 클러스터에 연결하는 데 필요한 네트워크 및 인증 세부 정보가 포함되어 있습니다.

소스 및 대상 cluster의 호스트 이름 또는 IP 주소와 포트를 결정합니다. 이 정보와 사용자 인증 세부 정보를 사용하여 연결 문자열을 구성합니다.

표준 URI 연결 체계의 형식은 다음과 같습니다.

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

연결 문자열은 다음과 유사합니다.

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

자세한 내용은 mongosync 연결을 참조하세요.

2

mongosync 데이터 동기화를 시작하기 전에 소스 및 대상 cluster에 대한 초기 연결을 생성해야 합니다. 초기 연결을 생성하려면 연결 문자열을 한 줄에 포함하여 다음 명령을 실행합니다(여기서는 명확성을 위해 명령 형식을 다시 지정합니다).

./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"
  • mongosync 가 소스 및 대상 cluster에 처음 연결될 때 이는 IDLE 상태가 됩니다.

  • mongosync 시작 명령을 받을 때까지 데이터를 동기화하지 않습니다.

  • 시작 명령으로 소스 및 대상 클러스터를 지정하세요. 'cluster0' 및 'cluster1'은 레이블일 뿐이며, 두 cluster는 cluster0 또는 cluster1 일 수 있습니다.

시작 엔드포인트는 데이터 동기화를 시작합니다. 동기화를 시작하려면 curl 또는 유사한 프로그램을 사용하여 시작 요청을 실행합니다.

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

시작 요청이 성공하면 mongosync{ "success": true } 을 반환하고 소스 cluster의 기존 데이터를 대상 cluster와 동기화하기 시작합니다. 이 시점에서 mongosyncRUNNING 상태가 되어 후속 소스 클러스터 쓰기를 대상 클러스터에 적용합니다.

동기화 상태를 확인하려면 진행 엔드포인트를 호출합니다.

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

progress 응답에 필드 canCommit: true가 포함되면 cluster가 동기화되고 대상 cluster가 소스 클러스터에서 데이터를 계속 복제합니다.

mongosync 의 명령 인터페이스는 HTTP API를 게시하는 HTTP 서버입니다. mongosync 을 제어하려면 API 엔드포인트를 사용합니다. API 설명서에 다음 엔드포인트 사용에 대한 자세한 내용이 나와 있습니다.

엔드포인트
설명
start
소스 cluster와 대상 cluster 간의 동기화를 시작합니다.
동기화 프로세스의 상태를 반환합니다.
현재 동기화 작업을 일시 중지합니다.
대상 클러스터에 저장된 데이터를 기반으로 일시 중지된 동기화 세션을 재개합니다.
동기화 작업을 대상 cluster에 커밋합니다.
커밋된 동기화 작업의 방향을 바꿉니다.

데이터 동기화를 초기화한 후 진행 엔드포인트를 호출하여 동기화 프로세스의 상태를 확인합니다.

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

일회성 동기화의 경우 progress 응답에 다음 필드 값이 포함되어 있는지 확인합니다.

  • state: "RUNNING"

  • canCommit: true

  • lagTimeSeconds 0 에 가깝습니다(권장, 필수는 아님).

그런 다음 커밋 엔드포인트를 호출하여 동기화 작업을 대상 cluster에 커밋하고 연속 복제를 중지합니다.

curl localhost:27182/api/v1/commit -XPOST --data '{ }'

commit 요청이 성공하면 mongosync{ "success": true } 을 반환하고 COMMITTING 상태로 들어갑니다. 동기화가 완료되면 mongosync 이(가) COMMITTED 상태로 전환되어 cluster가 더 이상 지속적으로 동기화되지 않습니다.

애플리케이션 로드를 소스 클러스터에서 대상으로 전송하기 전에 데이터를 확인하여 동기화에 성공했는지 확인하세요.

자세한 내용은 데이터 전송 확인을 참조하세요.

  • HTTP API의 기본 포트는 27182 입니다. --port 옵션을 mongosync 와 함께 사용하여 다른 포트를 구성합니다 .

  • mongosync 은(는) 소스 cluster와 대상 cluster를 교환하여 역동기화를 활성화할 수 있습니다.

    자세한 내용은 reverse 엔드포인트를 참조하세요.

  • mongosync 연결 문자열에 지정된 사용자는 소스 및 대상 cluster에 필요한 권한이 있어야 합니다. 권한은 환경과 쓰기 차단 또는 역동기화를 실행하려는지에 따라 달라집니다.

    사용 사례에 맞는 올바른 사용자 권한을 확인하려면 사용자 권한을 참조하세요 .

  • mongosync 을(를) 실행 중인 호스트에서 파일 설명자 ulimits 을 늘려야 할 수 있습니다. 이는 UNIX 계열 시스템에 모두 적용되지만 특히 macOS의 경우 기본값이 낮습니다. UNIX ulimit 설정을 참조하세요.

  • 초기 동기화에 필요한 oplog 의 크기를 추정하려면 oplog 크기 조정을 참조하세요.

← Cluster-to-Cluster Sync
설치 →