자체 관리 세컨더리의 동기화 대상 구성
개요
세컨더리는 프라이머리 멤버로부터 데이터를 캡처하여 세트 데이터의 최신 복사본을 유지합니다. 그러나 기본적으로 세컨더리는 멤버 간의 핑 시간 변화와 다른 멤버의 복제 상태에 따라 동기화 대상을 세컨더리 멤버로 자동 변경할 수 있습니다. 자세한 내용은 복제본 세트 데이터 동기화 및 자체 관리 체인 복제를 참조하세요.
일부 배포의 경우 사용자 지정 복제 동기화 토폴로지를 구현하는 것이 기본 동기화 대상 선택 로직보다 더 효과적일 수 있습니다. MongoDB는 동기화 대상으로 사용할 호스트를 지정할 수 있는 기능을 제공합니다.
기본 동기화 대상 선택 로직을 일시적으로 재정의하려면 세컨더리 멤버의 동기화 대상을 수동으로 구성하여 일시적으로 oplog 항목을 가져오도록 할 수 있습니다. 다음은 이 기능에 대한 액세스 권한을 제공합니다:
replSetSyncFrom
명령 또는
고려 사항
동기화 로직
replSetSyncFrom
/rs.syncFrom()
을 실행할 때 초기 동기화 작업이 진행 중인 경우, replSetSyncFrom
/rs.syncFrom()
이 진행 중인 초기 동기화를 중지하고 새 대상과의 동기화 프로세스를 다시 시작합니다.
필요한 경우에만 기본 동기화 로직을 수정하고 항상 주의를 기울입니다.
대상
동기화할 멤버는 세트의 데이터에 대한 유효한 소스여야 합니다. 구성원으로부터 동기화하려면 해당 구성원은 다음을 충족해야 합니다.
데이터가 있습니다. 중재자가 될 수 없으며, 시작 또는 복구 모드 상태가 아니고, 데이터 쿼리에 응답할 수 있어야 합니다.
접근이 가능해야 합니다.
복제본 세트 구성에서 동일한 세트의 멤버여야 합니다.
members[n].buildIndexes
설정으로 인덱스를 빌드합니다.자체 동기화를 방지하기 위해 세트의 다른 구성원이어야 합니다.
현재 구성원보다 10초 이상 뒤처진 멤버로부터 복제를 시도하는 경우 mongod
는 경고를 기록하지만 여전히 뒤처진 구성원으로부터 복제를 수행합니다. 복제 지연 및 흐름 제어를 참조하세요.
지속성
replSetSyncFrom
/rs.syncFrom()
을 기본 동작의 임시 재정의를 제공합니다. mongod
는 다음과 같은 상황에서 기본 동기화 동작으로 되돌아갑니다.
절차
에서 replSetSyncFrom
명령을 사용하려면 mongosh
다음을 수행합니다.
db.adminCommand( { replSetSyncFrom: "hostname<:port>" } );
에서 헬퍼를 rs.syncFrom()
사용하려면 mongosh
다음을 수행합니다.
rs.syncFrom("hostname<:port>");