네임스페이스 재매핑
중요
Cluster-to-Cluster Sync beta 프로그램
이 기능 은 mongosync
beta 에서만 사용할 수 있습니다. 학습 내용은 Cluster-to-Cluster Sync beta 프로그램을 참조하세요.
mongosync
beta 1.8 부터 동기화 중에 데이터베이스 이름을 다시 매핑할 수 있습니다. 이를 통해 소스 클러스터 의 한 데이터베이스 에 있는 데이터를 대상 클러스터 의 다른 데이터베이스 로 마이그레이션 할 수 있습니다.
네임스페이스 재매핑을 사용하려면 소스 클러스터 와 대상 클러스터 모두 지원되는 MongoDB 버전을 사용해야 합니다.
구문
/start API 엔드포인트는 다음 구문을 사용하여 선택적 namespaceRemap
매개변수를 허용합니다.
curl <host>:<port>/api/v1/start -XPOST \ --data ' { "source": "cluster0", "destination": "cluster1" "namespaceRemap": [ { "from": { "database": "<source-database>" }, "to": { "database": "<destination-database>" } } ] } '
매개변수 필드
필드 | 유형 | 필수 사항 | 설명 |
---|---|---|---|
namespaceRemap | 배열 | 옵션 | 동기화 중에 수행할 네임스페이스 변경을 지정하는 문서 배열입니다. 1.8버전의 새로운 기능: 베타 |
namespaceRemap[n]. from | 문서 | 필수 사항 | 재매핑 작업에서 마이그레이션 할 소스 클러스터 의 데이터베이스 를 지정하는 문서입니다. 1.8버전의 새로운 기능: 베타 |
namespaceRemap[n]. from.database | 문자열 | 필수 사항 | 소스 클러스터 에서 마이그레이션 할 데이터베이스입니다. 1.8버전의 새로운 기능: 베타 |
namespaceRemap[n]. to | 문서 | 필수 사항 | 재매핑 작업에서 마이그레이션 할 대상 클러스터 의 데이터베이스 를 지정하는 문서입니다. 1.8버전의 새로운 기능: 베타 |
namespaceRemap[n]. to.database | 문자열 | 필수 사항 | 대상 클러스터 에서 마이그레이션 할 데이터베이스입니다. 1.8버전의 새로운 기능: 베타 |
행동
유효한 네임스페이스 재매핑
네임스페이스 재매핑에는 다음과 같은 제한 사항이 적용 됩니다.
네임스페이스 재매핑은
system
,config
,admin
또는local
데이터베이스에 대한 쓰기 또는mongosync
에서 사용하는 내부 데이터베이스에 대한 쓰기를 허용하지 않습니다.대상 클러스터 의 데이터베이스 이름은 Windows 제한 사항에 따라 유효해야 합니다.
대상 클러스터 에서 다시 매핑된 데이터베이스 이름은 대소문자만 다를 수 있습니다.
네임스페이스 재매핑을 설정하다 하고
reversible
플래그를true
로 설정할 수 없습니다.재맵핑은 대상 클러스터 에서 네임스페이스 충돌을 일으킬 수 없습니다.
예를 들면 다음과 같습니다.
"namespaceRemap": [ { "from": { "database": "us-west" }, "to": {"database": "us-accounts" } }, { "from": { "database": "us-south" }, "to": { "database": "us-accounts" } } ] 소스 클러스터 의 각 데이터베이스 에
texas
컬렉션 이 포함된 경우mongosync
가 실패하거나 데이터가 손상되거나 예기치 않은 동작이 발생할 수 있습니다.
검증
네임스페이스 재매핑은 Embedded Verifier 와 호환되지 않습니다. 검증자와 네임스페이스 재매핑을 모두 활성화 한 경우 /start 명령은 오류를 반환합니다.
자세한 내용은 데이터 전송 확인을 참조하세요.
단계
네임스페이스 재매핑으로 클러스터 동기화
다음 /start 호출은 동기화 를 시작하고 소스 클러스터 의 accounts
데이터베이스 를 대상 클러스터 의 sales
데이터베이스 에 다시 매핑합니다.
curl -X POST "http://localhost:27182/api/v1/start" --data ' { "source": "cluster0", "destination": "cluster1", "namespaceRemap": [ { "from": { "database": "accounts", }, "to": { "database": "sales", } } ] } '
응답 예시:
{"success":true}