Cluster-to-Cluster Sync 빠른 시작
이 페이지의 내용
개요
MongoDB Cluster-to-Cluster Sync 는 MongoDB 클러스터를 연결하고 클러스터 간에 데이터를 동기화할 수 있는 방법을 제공합니다. 연결을 수행하는 도구는 mongosync 입니다. 자세한 내용은 나머지 Cluster-to-Cluster Sync 문서를 참조하세요.
mongosync
두 cluster 간의 데이터를 동기화합니다.
각 cluster는 복제본 세트 또는 샤드 cluster일 수 있습니다. 둘 중 하나가 샤드 cluster인 경우
mongosync
에 대한 샤드 cluster 제한 사항 을 참조하세요.샤드 cluster는 동일한 수의 샤드를 보유할 필요가 없습니다.
대상 클러스터 는 동일한 버전이거나 소스 클러스터 보다 최대 두 가지 버전 이전이어야 합니다. 최소 패치 버전 요구 사항을 충족하는 한 패치 버전은 중요하지 않습니다.
소스 클러스터 는 커밋 이 호출될 때까지 마이그레이션 기간 동안
mongosync
가 소스 클러스터 에 대한 쓰기를 동기화하기 때문에 커밋 될 때까지 활성 상태로 유지될 수 있습니다.
아래 지침에 따라 Cluster-to-Cluster Sync를 설정하고, cluster를 연결하고, 데이터를 동기화하세요.
설정
소스 및 대상 cluster 정의
MongoDB cluster자체 관리형 또는 에서 호스팅되는 가 이미 있는 MongoDB Atlas 경우 해당 클러스터를 소스 클러스터로 사용하세요. 사용할 클러스터가 없는 경우 클러스터를 만들어야 합니다.
이 빠른 시작은 대상 클러스터 와 소스 클러스터 가 모두 복제본 세트일 때 작동합니다.
복제본 세트 에서 샤딩된 클러스터 로 동기화 하려면 샤드 클러스터에 복제본 세트 동기화 를 참조하세요. 샤드 클러스터 간에 동기화 하려면 샤딩된 클러스터 동기화를 참조하세요 .
팁
다음도 참조하세요.
동일하거나 다른 MongoDB 버전의 클러스터 간에 마이그레이션 할 수 있습니다. MongoDB 서버 버전 호환성 또는 버전 간 마이그레이션에 대한 자세한 내용은 MongoDB Server 버전 호환성을 참조하세요.
대상 복제본 세트의 노드 수가 소스 복제본 세트의 노드 수와 같을 필요는 없습니다.
중요
대상 클러스터 에는 마이그레이션되는 논리적 데이터 크기와 초기 동기화 의 대상 oplog 항목을 수용할 수 있는 충분한 디스크 저장 가 있어야 합니다. 예를 예시 10 GB 의 데이터를 마이그레이션 하려면 대상 클러스터 에 최소 10 GB 의 데이터 사용 가능 공간이 있어야 하며, 초기 동기화 의 삽입 oplog 항목을 위한 추가 10 GB 가 있어야 합니다.
대상 oplog 항목의 오버헤드 를 줄이기 위해 다음을 수행할 수 있습니다.
설정을 사용하여 대상 클러스터의 oplog 크기를
oplogSizeMB
줄입니다.oplogMinRetentionHours
설정을 사용하여 대상 클러스터의 최소 oplog 보존 기간을 낮추거나 제거 합니다.
cluster가 자체 managed인 경우, MongoDB Enterprise cluster여야 합니다. Cluster-to-Cluster Sync는 제한된 수의 경우에만 MongoDB Community Edition에서 지원됩니다. MongoDB Community Edition에서 Cluster-to-Cluster Sync를 사용하는 방법에 대한 자세한 내용은 MongoDB 영업 담당자에게 문의하세요.
클러스터를 만드는 것은 이 가이드의 범위를 벗어납니다. 도움이 필요한 경우 설명서를 참조하여 Atlas 클러스터를 생성하거나 자체 관리형 클러스터를 생성하세요.
관리 사용자 정의
두 cluster 중 하나가 Atlas에서 호스팅되거나 둘 중 하나에 인증이 필요한 경우 두 cluster에서 모두 권한이 있는 데이터베이스 사용자를 생성해야 합니다.
소스 클러스터 인증 요구 사항
소스 사용자는 다음 역할이 있어야 합니다.
backup
역할
또한 소스 사용자는 다음을 수행할 수 있어야 합니다.
getParameter
명령 실행
소스 클러스터가 Atlas에서 호스팅되는 경우 사용자에게 Atlas 관리자 역할이 있어야 합니다. 또한 사용자는 클러스터의 변경 스트림을 읽을 수 있어야 합니다.
대상 cluster 인증 요구 사항
대상 클러스터가 Atlas에서 호스팅되는 경우 사용자에게 Atlas 관리자 역할이 있어야 합니다.
cluster 인증 참고 사항
Atlas user를 추가하는 방법은 데이터베이스 사용자 구성을 참조하세요.
자체 관리형 클러스터 에 사용자를 추가하려면 자체 관리 배포서버에서 사용자 생성을 참조하세요.
사용자 권한을 확인하려면
db.getUser()
를 실행 합니다.
다운로드 및 설치 mongosync
mongosync
소스 클러스터와 대상 클러스터를 연결하는 도구입니다. 자체 hardware 에서 mongosync
를 호스팅하다 할 수 있지만, mongosync
는 MongodDB 클러스터를 호스팅하는 hardware 에서 실행 필요가 없습니다.
mongosync
을(를) 설치하려면 다음을 수행합니다.
소스 및 대상 cluster에 네트워크로 연결되어 있는
mongosync
실행 파일의 서버를 찾습니다.MongoDB 다운로드 센터로 이동합니다.
호스트 시스템에 맞는
mongosync
패키지를 다운로드합니다.mongosync
패키지의 압축을 풉니다.mongosync
실행 파일은bin
디렉토리에 있습니다.
운영 체제별 설치 지침은 설치를 참조하세요.
cluster 연결
연결 문자열 형식 지정
연결 문자열에는 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
연결을 참조하세요.
mongosync 초기화
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"
초기화 참고 사항
cluster 간 데이터 동기화
시작 엔드포인트는 데이터 동기화를 시작합니다. 동기화를 시작하려면 curl
또는 유사한 프로그램을 사용하여 시작 요청을 실행합니다.
curl localhost:27182/api/v1/start -XPOST \ --data ' { "source": "cluster0", "destination": "cluster1" } '
시작 요청이 성공하면 mongosync
는 { "success": true }
을 반환하고 소스 cluster의 기존 데이터를 대상 cluster와 동기화하기 시작합니다. 이 시점에서 mongosync
는 RUNNING
상태가 되어 후속 소스 클러스터 쓰기를 대상 클러스터에 적용합니다.
동기화 상태를 확인하려면 진행 엔드포인트를 호출합니다.
curl localhost:27182/api/v1/progress -XGET
progress
응답에 필드 canCommit: true
가 포함되면 cluster가 동기화되고 대상 cluster가 소스 클러스터에서 데이터를 계속 복제합니다.
mongosync
의 명령 인터페이스는 HTTP API를 게시하는 HTTP 서버입니다. mongosync
을 제어하려면 API 엔드포인트를 사용합니다. API 설명서에 다음 엔드포인트 사용에 대한 자세한 내용이 나와 있습니다.
전환 프로세스 완료
mongosync
전환 프로세스 를 사용하여 마이그레이션 을 완료하고 애플리케이션 워크로드 를 소스에서 대상 클러스터 로 전송할 수 있습니다.
자세한 내용은 전환 프로세스 완료를 참조하세요.
일회성 동기화
데이터 동기화를 초기화한 후 진행 엔드포인트를 호출하여 동기화 프로세스의 상태를 확인합니다.
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 크기 조정을 참조하세요.