문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

보조 동기화 대상 구성하기

이 페이지의 내용

  • 개요
  • 고려 사항
  • 절차

세컨더리는 프라이머리 멤버의 데이터를 캡처하여 세트 데이터의 최신 사본을 유지합니다. 그러나 기본적으로 세컨더리는 멤버 간의 핑 시간 변화와 다른 멤버의 복제 상태에 따라 동기화 대상을 세컨더리 멤버로 자동 변경할 수 있습니다. 자세한 내용은 복제본 세트 데이터 동기화체인 복제 관리를 참조하세요.

일부 배포의 경우 사용자 지정 복제 동기화 토폴로지를 구현하는 것이 기본 동기화 대상 선택 로직보다 더 효과적일 수 있습니다. MongoDB는 동기화 대상으로 사용할 호스트를 지정할 수 있는 기능을 제공합니다.

기본 동기화 대상 선택 로직을 일시적으로 재정의하려면 세컨더리 멤버의 동기화 대상을 수동으로 구성하여 일시적으로 oplog 항목을 가져오도록 할 수 있습니다. 다음은 이 기능에 대한 액세스 권한을 제공합니다:

replSetSyncFrom/rs.syncFrom()을 실행할 때 초기 동기화 작업이 진행 중인 경우, replSetSyncFrom/rs.syncFrom()이 진행 중인 초기 동기화를 중지하고 새 대상과의 동기화 프로세스를 다시 시작합니다.

필요한 경우에만 기본 동기화 로직을 수정하고 항상 주의를 기울입니다.

동기화할 멤버는 세트의 데이터에 대한 유효한 소스여야 합니다. 구성원으로부터 동기화하려면 해당 구성원은 다음을 충족해야 합니다.

  • 데이터가 있습니다. 중재자가 될 수 없으며, 시작 또는 복구 모드 상태가 아니고, 데이터 쿼리에 응답할 수 있어야 합니다.

  • 접근이 가능해야 합니다.

  • 복제본 세트 구성에서 동일한 세트의 멤버여야 합니다.

  • members[n].buildIndexes 설정으로 인덱스를 빌드합니다.

  • 자체 동기화를 방지하기 위해 세트의 다른 구성원이어야 합니다.

현재 구성원보다 10초 이상 뒤처진 멤버로부터 복제를 시도하는 경우 mongod는 경고를 기록하지만 여전히 뒤처진 구성원으로부터 복제를 수행합니다. 복제 지연 및 흐름 제어를 참조하세요.

replSetSyncFrom/rs.syncFrom()을 기본 동작의 임시 재정의를 제공합니다. mongod는 다음과 같은 상황에서 기본 동기화 동작으로 되돌아갑니다.

  • mongod 인스턴스가 다시 시작됩니다.

  • mongod와 동기화 대상 간의 연결이 닫힙니다.

  • 동기화 대상이 복제본 세트의 다른 구성원보다 30초 이상 뒤처지는 경우.

에서 replSetSyncFrom 명령을 사용하려면 mongosh 다음을 수행합니다.

db.adminCommand( { replSetSyncFrom: "hostname<:port>" } );

에서 헬퍼를 rs.syncFrom() 사용하려면 mongosh 다음을 수행합니다.

rs.syncFrom("hostname<:port>");
← 복제본 세트에서 호스트 이름 변경

이 페이지의 내용