다대일 마이그레이션
중요
Cluster-to-Cluster Sync beta 프로그램
이 기능 은 mongosync
beta 에서만 사용할 수 있습니다. 학습 내용은 Cluster-to-Cluster Sync beta 프로그램을 참조하세요.
mongosync
beta 1.8 부터 다대일 마이그레이션을 수행할 수 있습니다. 다대일 마이그레이션을 사용하면 여러 소스 클러스터를 대상 클러스터 와 동시에 동기화 할 수 있습니다. 예를 예시, 여러 개의 작은 클러스터의 데이터를 중앙 클러스터 로 통합할 수 있습니다.
구문
여러 소스 클러스터를 하나의 대상 클러스터 와 동기화 하려면 mongosync를 시작할 때 다음 명령을 실행 합니다.
./bin/mongosync \ --cluster0 <source-A-connection-string> \ --cluster1 <destination-connection-string> \ --migrationName <string> ./bin/mongosync \ --cluster0 <source-B-connection-string> \ --cluster1 <destination-connection-string> \ --migrationName <string>
소스 클러스터와 대상 클러스터 간의 동기화 작업을 시작하려면 클러스터 간 데이터 동기화를 참조하세요.
행동
네임스페이스 는 database_name.collection_name
조합입니다. 충돌하지 않는 네임스페이스만 동기화 할 수 있습니다.
예를 예시 다음 시나리오를 가정해 보겠습니다.
두 개의 소스 클러스터 S1 및 S2.
대상 클러스터 D.
S1 및 S2 모두에
inventory
및sales
이라는 이름의 데이터베이스가 있습니다.S1 및 S2 모두에서
products
,orderLines
,orderStatus
및orders
이라는 이름의 컬렉션입니다.이 두 가지 조합을 모두 동기화 할 수 있습니다.
inventory.products
및 S에sales.orderStatus
을(를) D와 함께1 합니다.inventory.orderLines
및 S에sales.orders
을(를) D와 함께2 합니다.
이 두 조합은 충돌하기 때문에 동기화 할 수 없습니다.
inventory.products
및 S1 의inventory.orderLines
을 D와 함께 사용합니다. D가 처음에 비어 있으면 S1 를 D와 동기화 할 수 있습니다.inventory.products
및inventory.orderLines
는 S1 에서 D로 복사됩니다.inventory.products
및 S2 의inventory.orderLines
을(를) D와 함께 사용합니다. 이전 점 의 시나리오에서inventory.products
및inventory.orderLines
가 이미 D 에 있는 네임스페이스와 충돌하기 때문에 S2 를 D와 동기화 할 수 없습니다.
마이그레이션 이름
migrationName
문자열은 최대 44자의 영숫자 및 밑줄 문자를 포함할 수 있습니다. 마이그레이션 메타데이터 데이터베이스 이름을 설정하기 위해 문자열 "mongosync_internal_"
에 migrationName
이 추가됩니다.
예를 들어 migrationName
을 "cluster_27000_to_cluster_35000_sync"
로 설정하면 결과로 생성되는 mongosync
메타데이터 데이터베이스 이름은 "mongosync_internal_cluster_27000_to_cluster_35000_sync"
입니다.
검증
다대일 마이그레이션은 Embedded Verifier 와 호환되지 않습니다. 검증자와 다대일 마이그레이션을 모두 활성화 한 경우 /start 명령은 오류를 반환합니다.
자세한 내용은 데이터 전송 확인을 참조하세요.
예시
다음 예시 에서는 27000
및 27001
포트 실행 소스 클러스터를 35000
포트 실행 대상 클러스터 와 연결합니다. 또한 --migrationName
옵션을 설정하여 작업을 설명하고 각 동기화 에 대한 마이그레이션 메타데이터 를 저장 합니다.
./bin/mongosync \ --cluster0 "mongodb://localhost:27000" \ --cluster1 "mongodb://localhost:35000" \ --migrationName "cluster_27000_to_cluster_35000_sync" ./bin/mongosync \ --cluster0 "mongodb://localhost:27001" \ --cluster1 "mongodb://localhost:35000" \ --migrationName "cluster_27001_to_cluster_35000_sync"