자주 묻는 질문
이 페이지의 내용
mongosync
가 동기화되는 동안 대상 클러스터 에 대한 읽기 또는 쓰기를 수행할 수 있나요?mongosync
을 자체 hardware에서 실행할 수 있나요?- 대상 클러스터 의 hardware 사양은 무엇인가요?
- 소스 클러스터에서
oplog
의 크기를 늘려야 하나요? mongosync
허용하는 연결 문자열 옵션은 무엇인가요?- 어떤 보안 및 인증 옵션이 지원되나요?
- 오류가 발생하면
mongosync
가 자동으로 다시 시작되나요? - 소스 또는 대상이 중재자가 있는 복제본 세트일 수 있나요?
- 느린 작동 경고가 표시되면 어떻게 되나요?
- 로그에 '오류' 또는 '실패'라는 단어가 포함된 경우 마이그레이션을 중지해야 하나요?
- 로그에 중복 키 오류가 많이 표시되면 어떻게 되나요?
- mongosync가 치명적인 오류를 반환하면 어떻게 해야 하나요?
mongosync
가 TTL 인덱스를 지원하나요?- 샤딩된 클러스터 에 동기화할 때 청크 배포를 사용자 지정할 수 있나요?
이 페이지에서는 발생한 몇 가지 자주 묻는 질문에 대한 답변을 제공합니다. 추가 질문이 있는 경우 MongoDB 지원팀에 문의하세요.
가 동기화되는 동안 대상 클러스터 에 대한 읽기 또는 쓰기를 수행할 수 mongosync
있나요?
동기화 중에 언제든지 읽기를 수행할 수 있습니다. 그러나 사용자가 읽는 데이터는 궁극적 일관적인 이 있습니다. 일관적인 읽기를 위해 마이그레이션 이 커밋 될 때까지 기다립니다. 학습 내용은 연속 동기화 시 고려 사항을 참조하세요.
커밋 을 실행하기 전에 canWrite
이 false
인 동안 동기화된 네임스페이스 에 쓰기 (write) 경우 동작이 정의되지 않습니다. 동기화된 네임스페이스에 쓰지 않도록 하려면 쓰기 (write) 쓰기 (write)을 활성화 합니다.
참고
대상 클러스터 의 인덱스 빌드는 mongosync
가 동기화되는 동안 쓰기로 처리됩니다.
canWrite
값을 확인하려면 progress API 엔드포인트를 호출합니다.
mongosync
자체 hardware 에서 실행 수 있나요?
예, mongosync
는 자체 hardware에서 실행할 수 있습니다. mongosync
를 MongoDB 인스턴스를 호스팅하는 서버에서 실행할 필요가 없습니다. When mongosync
runs on its own hardware, it can use an operating system (OS) that is different than the OS on the source or destination clusters.
대상 클러스터 의 hardware 사양은 무엇인가요?
대부분의 마이그레이션에서 대상 클러스터 는 다음 속성을 포함하여 소스 클러스터 보다 높은 hardware 사양을 가져야 합니다.
중앙처리장치
메모리
Disk I/O
이러한 hardware 사양은 대상 클러스터 가 mongosync
쓰기를 처리하다 할 수 있고 동기화 가 소스 클러스터의 워크로드 를 따라잡을 수 있도록 보장합니다.
대상 클러스터 에는 마이그레이션되는 논리적 데이터 크기와 초기 동기화 의 대상 oplog 항목을 수용할 수 있는 충분한 디스크 저장 가 있어야 합니다. 예를 예시 10 GB 의 데이터를 마이그레이션 하려면 대상 클러스터 에 최소 10 GB 의 데이터 사용 가능 공간이 있어야 하며, 초기 동기화 의 삽입 oplog 항목을 위한 추가 10 GB 가 있어야 합니다.
대상 oplog 항목의 오버헤드 를 줄이기 위해 다음을 수행할 수 있습니다.
설정을 사용하여 대상 클러스터의 oplog 크기를
oplogSizeMB
줄입니다.oplogMinRetentionHours
설정을 사용하여 대상 클러스터의 최소 oplog 보존 기간을 낮추거나 제거 합니다.
소스 클러스터 에서 의 크기를 oplog
늘려야 하나요?
mongosync
소스 클러스터의 oplog
에 있는 작업을 대상 클러스터의 데이터에 적용합니다. mongosync
적용되지 않은 작업이 소스 cluster의 oplog
롤오프되면 동기화가 실패하고 mongosync
가 종료됩니다.
참고
mongosync
대상 클러스터에 동기화하는 동안 소스 클러스터에서 수행된 applyOps
작업을 복제하지 않습니다.
초기 동기화 중에 mongosync
에서 문서를 동시에 복사하기 때문에 더 느린 속도로 작업을 적용할 수 있습니다. 초기 동기화 후 mongosync
는 변경 사항을 더 빠르게 적용하고 oplog
에서 소스 클러스터에서 발생하는 실시간 쓰기에 가까운 위치를 유지할 가능성이 높습니다.
대규모 데이터 세트를 동기화할 예정이거나 장기간 동기화를 일시 중지할 계획인 경우 oplog window 를 초과할 수 있습니다. oplogSizeMB
설정을 사용하여 소스 클러스터에서 oplog
의 크기를 늘립니다.
에서 string 허용하는 연결 문자열 옵션은 mongosync
무엇인가요?
mongosync
readConcern: "majority" 및 writeConcern: "majority"가 필요합니다.
가 이 readConcern
아닌 경우 majority
는mongosync
오류를 반환합니다.
Invalid URI option, read concern must be majority
가 이 writeConcern
아닌 경우 majority
는mongosync
오류를 반환합니다.
Invalid URI option, write concern must be majority
mongosync
다른 모든 연결 string 옵션을 허용합니다.
어떤 보안 및 인증 옵션이 지원되나요?
mongosync
표준 MongoDB 연결 string 을 사용하여 소스 및 대상 클러스터에 연결합니다.
LDAP 및 X509 가 지원됩니다. 사용 가능한 인증 옵션 은 자체 관리 배포서버에 대한 인증을 참조하세요.
mongosync
오류가 발생하면 가 자동으로 다시 시작되나요?
mongosync
오류 발생 시 자동으로 다시 시작되지 않습니다. 그러나 스크립트 를 쓰기 (write) 하거나 운영 체제의 프로세스 관리자( 예시: systemd
)를 사용하여 mongosync
프로세스 를 다시 시작할 수 있습니다.
mongosync
바이너리는 상태를 저장하지 않습니다. 다시 시작하기 위한 메타데이터는 대상 cluster에 저장됩니다.
동기화 중에 mongosync
을 사용할 수 없게 되면 mongosync
작업을 재개할 수 있습니다. mongosync
를 다시 사용할 수 있게 되면 동일한 매개 변수를 사용하여 mongosync
프로세스를 다시 시작합니다. mongosync
은(는) mongosync
을(를) 사용할 수 없게 되었을 때 중지된 위치에서 작업을 재개합니다.
참고
mongosync
1.7.3 부터 시작, 동기화 작업을 재개하거나 다시 시작할 때 mongosync
가 응답하는 데 최소 2분 정도 걸릴 수 있습니다. 이 시간 동안에는 progress
엔드포인트에 대한 모든 호출이 실패할 수 있습니다. progress
호출이 실패해도 안전하게 다시 시도할 수 있습니다.
소스 또는 대상이 중재자가 있는 복제본 세트일 수 있나요?
예, 복제본 세트에는 중재자가 있을 수 있습니다. 소스 복제본 세트에는 2 개 이상의 비중재자 노드가 있어야 하며 비중재자 노드에서 동기화해야 합니다. 소스 클러스터의 연결 string 을 사용하여 중재자가 아닌 데이터 보유 노드에 대한 읽기 설정 을 지정합니다.
느린 작동 경고가 표시되면 어떻게 되나요?
소스 cluster에서 느린 읽기 작업 또는 대상 cluster에서 느린 쓰기 작업이 있는 경우 초기 동기화 또는 변경 이벤트 적용 중에 작업 속도 저하 경고가 발생할 수 있습니다. 경고는 소스 또는 대상 cluster의 네트워크 혼잡 또는 리소스 부하를 나타낼 수 있습니다.
이러한 경고가 그 자체로 실패를 나타내는 것은 아니지만 작업이 느리면 mongosync
에서 작업 시간 초과 오류 및 마이그레이션 실패가 발생할 수 있습니다.
느린 작업 경고가 표시되면 소스 및 대상 cluster에서 CPU, 메모리 및 네트워크 사용량을 확인하세요. cluster가 요구 사항에 비해 프로비저닝이 부족한 경우 hardware를 업그레이드하는 것이 좋습니다.
로그에 '오류' 또는 '실패'라는 단어가 포함된 경우 마이그레이션을 중지해야 하나요?
아니요, "오류" 또는 "실패"라는 단어가 포함된 로그는 치명적이지 않은 오류를 표시하며 mongosync
을 조기에 중지해야 함을 나타내지 않습니다. 이러한 로그는 mongosync
에 오류가 발생했거나 데이터가 손상되었음을 나타내지 않습니다. 치명적인 오류가 발생하면 mongosync
는 동기화를 중지하고 치명적인 로그 항목을 기록합니다.
로그에 중복 키 오류가 많이 표시되면 어떻게 되나요?
중복 키 오류는 동기화 프로세스 의 정상적인 일부입니다. 이러한 오류는 다음과 같은 경우에 발생할 수 있습니다.
mongosync
이(가) 시작된 후 소스 클러스터 에 문서 를 삽입합니다.mongosync
는 문서 를 직접 복사하고 나중에 문서 에 변경 삽입 이벤트 를 중복 적용 할 수 있습니다.mongosync
을(를) 중지했다가 다시 시작합니다. 이로 인해mongosync
이 다시 시작될 때 중복 삽입이 발생할 수 있습니다.mongosync
일시적인 오류가 발생하여 이미 성공했을 수 있는 삽입을 다시 시도합니다.
mongosync가 치명적인 오류를 반환하면 어떻게 해야 하나요?
치명적 오류는 해결해야 하는 문제를 나타내며 마이그레이션 을 다시 시작해야 합니다. 오류를 해결한 후 mongosync_reserved_for_internal_use
데이터베이스 를 포함하여 대상 클러스터 에서 마이그레이션된 모든 데이터를 삭제 합니다. 그런 다음 mongosync
다시 시작하고 새 마이그레이션 을 시작합니다.
mongosync
은(는) TTL 인덱스를 지원하나요?
Cluster-to-Cluster Sync는 소스에서 대상 클러스터로의 TTL 인덱스 동기화를 지원합니다.
샤딩된 클러스터 에 동기화할 때 청크 배포를 사용자 지정할 수 있나요?
아니요, 대상 샤딩된 클러스터 에서 청크 배포를 사용자 지정하도록 mongosync
를 구성할 수 없습니다. mongosync
는 초기화 중에 각 컬렉션 을 샘플링하여 마이그레이션 후 대상 클러스터의 샤드 전체에 문서를 효율적으로 배포하는 방법을 결정합니다.