문서 메뉴

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

지연된 복제본 세트 멤버를 참조하십시오.

이 페이지의 내용

  • 고려 사항
  • 예제
  • 구성

지연 멤버에는 복제본 세트의 데이터 세트 복사본이 포함되어 있습니다. 그러나 지연 멤버의 데이터 세트는 세트의 이전 또는 지연된 상태를 반영합니다. 예를 들어 현재 시간이 09:52이고 한 멤버의 지연 시간이 1시간인 경우 지연 멤버에는 08:52 이후에 작업한 내용이 없습니다.

지연 멤버는 데이터 세트의 "롤링 백업" 또는 실행 중인 "기록" 스냅샷이므로 다양한 종류의 인적 오류를 복구하는 데 도움이 될 수 있습니다. 예를 들어, 지연 멤버를 사용하면 애플리케이션 업그레이드 실패 및 데이터베이스와 컬렉션 삭제 등의 연산자 오류를 복구할 수 있습니다.

지연 멤버:

중요

복제본 세트에 지연 멤버가 포함되어 있는 경우 지연 멤버가 숨겨져 있고 투표권이 없는지 확인합니다.

지연된 복제 세트 멤버를 숨기면 애플리케이션에서 해당 멤버에 직접 연결하지 않고도 지연된 데이터를 보고 쿼리할 수 없습니다. 지연된 복제 세트 멤버를 투표권이 없는 것으로 설정하면 쓰기 고려 "majority"이(가) 있는 쓰기 작업을 승인하는 데 포함되지 않는다는 것을 의미합니다.

지연된 멤버를 숨기지 않고 하나 이상의 노드를 사용할 수 없게 되면 복제본 세트는 지연된 멤버를 기다려야 하며 커밋 지점이 지연됩니다. 커밋 지점이 지연되면 성능 문제가 발생할 수 있습니다.

예를 들어 지연된 세컨더리가 10분 지연으로 투표하는 프라이머리-세컨더리-지연 복제본 세트 구성을 생각해 봅니다.

지연되지 않은 세컨더리를 사용할 수 없는 경우 프라이머리 지연의 저하된 구성이 "majority"을(를) 사용하여 쓰기 작업을 승인하려면 최소 10분 이상 기다려야 합니다. 대부분의 커밋 지점이 진행되는 데 시간이 더 오래 걸려 세컨더리를 사용하는 프라이머리 및 중재자(PSA) 복제본 세트에서 캐시 압력과 유사한 성능 문제가 발생합니다.

다수의 커밋 지점에 대한 자세한 내용은 인과적 일관성 및 읽기 및 쓰기 고려를 참조하세요. 성능 문제 해결에 대한 자세한 내용은 복제본 세트 유지 관리 튜토리얼을 참조하세요.

지연 멤버는 지연된 상태에서 소스 oplog의 작업을 복사하여 적용합니다. 지연 시간을 선택할 때 지연 정도를 고려합니다.

  • 예상 유지 관리 기간보다 크거나 같아야 합니다.

  • oplog의 용량보다 작아야 합니다. oplog 크기에 대한 자세한 내용은 Oplog 크기를 참조하세요.

지연 복제본 세트 멤버는 w: <number>로 발행된 쓰기 작업을 승인할 수 있습니다. 그러나 w : "majority"로 실행된 쓰기 작업의 경우 지연 멤버도 투표 멤버(예: members[n].votes0 초과인 경우)여야 "majority" 쓰기 작업을 승인할 수 있습니다. 투표권이 없는 복제본 세트 멤버(예: members[n].votes0인 경우)는 majority 쓰기 고려를 가진 쓰기 작업을 승인하는 데 기여할 수 없습니다.

지연된 세컨더리는 구성된 secondaryDelaySecs보다 이전에 완료된 쓰기 확인을 반환할 수 없습니다.

샤드 클러스터에서는 밸런서가 활성화된 경우 지연 멤버의 유용성이 제한됩니다. 지연 멤버는 지연 상태인 청크 마이그레이션을 복제하기 때문에, 지연 기간 동안 마이그레이션이 발생하는 경우 샤드 클러스터의 지연 멤버 상태는 샤드 클러스터의 이전 상태로 복구하는 데 유용하지 않습니다.

다음 5개 멤버로 구성된 복제본 세트에서 프라이머리 및 모든 세컨더리에는 데이터 세트의 복사본이 있습니다. 1개 멤버가 3600초(1시간) 지연된 상태에서 작업을 적용합니다. 이 지연 멤버도 숨겨지고 우선 순위가 0인 멤버입니다.

숨겨진 우선 순위 0 지연 멤버가 있는 5명의 멤버로 구성된 복제본 세트의 다이어그램입니다.

지연 멤버의 members[n].priority0, members[n].hiddentrue, members[n].secondaryDelaySecs는 지연된 시간(초)과 같습니다.

{
"_id" : <num>,
"host" : <hostname:port>,
"priority" : 0,
"secondaryDelaySecs" : <seconds>,
"hidden" : true
}

지연 멤버를 구성하려면 지연 복제본 세트 멤버 구성을 참조하세요.

← 숨겨진 복제본 세트 멤버를 참조하십시오.

이 페이지의 내용