문서 메뉴

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

복제본 세트 중재자

이 페이지의 내용

  • 버전 고려 사항 출시
  • PSA 복제본 세트의 성능 문제
  • 복제본 세트 프로토콜 버전 및 중재자
  • 다수의 중재자 관련 우려 사항
  • 보안
  • 예제

일부 상황(예: 주 복제본과 보조 복제본이 있지만 비용 제약으로 인해 보조 복제본을 추가할 수 없는 경우)에서는 복제본 세트에 중재자를 추가할 수 있습니다. 중재자는 주 노드를 선택하는 선거에 참여하지만, 데이터 세트의 사본이 없으므로 주 노드를 선택하는 선거의 후보가 될 수 없습니다.

중재자는 정확히 1 투표권을 가집니다. 기본적으로 중재자는 0 의 우선순위를 갖습니다.

중요

복제본 세트의 주 멤버 또는 보조 멤버를 함께 호스팅하는 시스템에서는 중재자를 실행하지 마십시오.

중재자를 추가하려면 복제본 세트에 중재자 추가를 참조하세요.

분기별 빠른 릴리스에서는중재자가 지원되지 않습니다. 배포에 중재자가 포함된 경우 LTS 릴리스만 사용하세요.

프라이머리-세컨더리-중재자(PSA) 아키텍처를 사용 중이라면 다음을 고려하세요.

  • 쓰기 고려 "majority"는 세컨더리를 사용할 수 없거나 지연되었을 때 성능 문제를 일으킬 수 있습니다. 이러한 문제를 완화하는 방법은 PSA 복제본 세트의 성능 문제 완화를 참조하세요.

  • 글로벌 기본값 "majority"를 사용하고 있고, 쓰기 고려가 과반수 크기보다 작으면 쿼리가 오래된 (완전히 복제되지 않은) 부실 데이터를 반환할 수 있습니다.

다음 MongoDB 버전에서 중재자가 있는 복제본 세트의 경우 pv1pv0 (MongoDB 4.0 이상에서는 더 이상 지원되지 않음)에 비해 w:1 롤백 가능성을 높입니다.

  • MongoDB 3.4.1

  • MongoDB 3.4.0

  • MongoDB 3.2.11 또는 이전 버전

복제본 세트 프로토콜 버전을 참조하세요.

자세한 내용은 setFeatureCompatibilityVersion 명령을 참조하세요.

데이터 일관성 문제를 방지하려면 단일 중재자를 사용하세요. 다수의 중재자는 다수결 쓰기 고려를 안정적으로 사용하는 것을 방해합니다.

프라이머리 노드에 장애가 발생한 후에도 쓰기가 지속되도록 하려면 다수결 쓰기 고려는 쓰기 작업을 인정하는 다수의 노드의 승인이 필요합니다.중재자는 데이터를 저장하지 않지만 복제본 세트의 노드 수에 기여합니다. 복제본 세트에 여러 중재자가 있는 경우, 노드 장애 후 데이터를 보유한 노드의 다수를 사용할 수 있을 가능성이 낮습니다.

경고

세컨더리 노드가 프라이머리 노드보다 뒤쳐지고 클러스터가 reconfigured인 경우 여러 중재자의 투표로 뒤쳐진 노드를 선택할 수 있습니다. 새 프라이머리에는 이전 구성에서 과반수 커밋이 되었더라도 복제되지 않은 쓰기를 가지지 않게 됩니다.그 결과 데이터 손실이 발생합니다.

이러한 시나리오를 피하려면 중재자를 한 명만 사용하세요.

버전 5.3에 추가.

MongoDB 5.3부터는 복제본 세트의 다중 중재자 지원이 기본적으로 비활성화됩니다. 복제본 세트에 여러 중재자를 추가하려 한다면 서버는 오류를 반환합니다.

MongoServerError: Multiple arbiters are not allowed unless all nodes
were started with --setParameter 'allowMultipleArbiters=true'

MongoDB 5.3 이상을 사용하여 복제본 세트에 여러 중재자를 추가하려면 각 노드를 allowMultipleArbiters 매개 변수를 true로 설정하여 시작하세요.

mongod --setParameter allowMultipleArbiters=true

authorization으로 실행하는 경우 중재자는 설정의 다른 구성원과 자격 증명을 교환하여 인증합니다. MongoDB는 인증 프로세스를 암호화하며 MongoDB 인증 교환은 암호학적으로 안전합니다.

중재자는 데이터를 저장하지 않기 때문에 인증에 사용되는 사용자 및 역할 매핑의 내부 테이블을 보유하고 있지 않습니다.따라서 인증이 활성화된 상태에서 중재자에게 로그온하는 유일한 방법은 localhost exception을 사용하는 것입니다.

중재자와 다른 세트 멤버 간의 유일한 통신은 선거 중 투표, 하트비트 그리고 구성 데이터입니다. 이러한 교환은 암호화되지 않습니다.

그러나 MongoDB deployment에서 TLS/SSL을 사용하는 경우, 복제본 세트 멤버 간의 모든 통신을 암호화합니다.자세한 내용은 TLS/SSL을 위한 mongodmongos 구성을 참조하세요.

모든 MongoDB 구성 요소와 마찬가지로, 신뢰할 수 있는 네트워크 환경에서 중재자를 실행하세요.

예를 들어, 데이터를 포함하는 두 개의 멤버(프라이머리 멤버와 세컨더리 멤버)로 구성된 다음 복제본 세트에서 중재자는 동점을 깨기 위해 세트에 홀수 투표를 허용합니다.

기본, 보조, 중재자로 구성된 복제 세트의 다이어그램입니다.
← 지연된 복제본 세트 멤버를 참조하십시오.