문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ /

복제본 세트에 중재자 추가

이 페이지의 내용

  • 고려 사항
  • 기본-보조-아비터 복제본 세트
  • 중재자 추가

일부 상황(예: 기본 인스턴스와 보조 인스턴스가 있지만 비용 제약으로 인해 보조 인스턴스를 추가할 수 없는 경우)에서는 선거에서mongod 투표할 중재자 로 복제본 세트에 인스턴스를 추가하도록 선택할 수 있습니다.

중재자는 mongod 복제본 세트의 일부이지만 데이터를 보유하지 않는 개의 인스턴스입니다(즉, 다음과 같습니다. 데이터 중복성을 제공하지 않습니다). 그러나 선거에는 참여할 수 있습니다.

중재자는 최소한의 리소스만 필요하며 전용 하드웨어가 필요하지 않습니다. 애플리케이션 서버 또는 모니터링 호스트에 중재자를 배포할 수 있습니다.

중요

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

경고

복제본 세트에 두 개 이상의 중재자를 배치하지 마세요. 복수 중재자 관련 우려 사항을 참조하세요.

기존 레플리카 세트에 중재자를 추가하려면 다음과 같이 하세요:

  • 일반적으로 복제본 세트에 데이터를 보유하는 멤버가 두 개 이하인 경우 먼저 복제본 세트에 대한 클러스터 전체 쓰기 우려를 설정해야 할 수 있습니다.

  • 클러스터 전체 쓰기 우려를 설정해야 하는 이유에 대한 자세한 내용은 클러스터 전체 쓰기 우려를 참조하세요.

중재자로 새로운 복제 세트를 시작하기 전에 클러스터 전체의 쓰기 고려 설정을 변경할 필요는 없습니다.

다음도 참조하세요.

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

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

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

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

참고

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

  • MongoDB 3.4.1

  • MongoDB 3.4.0

  • MongoDB 3.2.11 또는 이전 버전

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

중재자는 데이터를 저장하지 않지만 중재자의 mongod 프로세스가 복제본 세트에 추가될 때까지 다른 mongod 프로세스처럼 작동하며 데이터 파일 집합과 전체 크기 저널로 시작합니다.

경고

로컬 호스트가 아닌(예: 공개적으로 액세스할 수 있는) IP 주소에 바인딩하기 전에 무단 액세스로부터 클러스터를 보호했는지 확인하세요. 보안 권장 사항의 전체 목록은 보안 검사 목록을 참조하세요. 최소한으로 인증을 활성화하고 네트워크 인프라를 강화하는 것을 고려하세요.

2} 및mongod 몽고DB mongos 바이너리는 기본적으로 로컬 호스트에 바인딩됩니다. 바이너리에 대해 net.ipv6 구성 파일 설정 또는 --ipv6 명령줄 옵션이 설정되어 있으면 바이너리가 로컬 호스트 IPv6 주소에 추가적으로 바인딩됩니다.

기본적으로 localhost에 바인딩된 mongodmongos는 동일한 컴퓨터에서 실행 중인 클라이언트의 연결만 허용합니다. 이 바인딩 동작에는 mongosh와 복제본 세트 또는 샤딩된 클러스터의 다른 노드가 포함됩니다. 원격 클라이언트는 localhost에만 바인딩된 바이너리에는 연결할 수 없습니다.

기본 바인딩을 재정의하고 다른 IP 주소에 바인딩하려면 net.bindIp 구성 파일 설정 또는 --bind_ip 명령줄 옵션을 사용하여 호스트 이름 또는 IP 주소 목록을 지정합니다.

경고

MongDB 부터 5 시작됩니다.0, 분할 수평 DNS IP 주소로만 구성된 노드는 시작 유효성 검사에 실패하고 오류를 보고합니다. disableSplitHorizonIPCheck 를 참조하세요.

예를 들어 다음 mongod 인스턴스는 로컬 호스트와 IP 주소 198.51.100.1 와 연결된 호스트명 My-Example-Associated-Hostname에 모두 바인딩됩니다.

mongod --bind_ip localhost,My-Example-Associated-Hostname

이 인스턴스에 연결하려면 원격 클라이언트가 호스트 이름 또는 관련 IP 주소 198.51.100.1를 지정해야 합니다.

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1

중요

변경된 IP 주소로 인해 구성이 업데이트되는 것을 방지하려면 IP 주소 대신 DNS 호스트 이름을 사용하세요. 특히 복제본 세트 구성원 또는 샤드 클러스터 구성원을 구성할 때 IP 주소 대신 DNS 호스트 이름을 사용하는 것이 중요합니다.

IP 주소 대신 호스트 이름을 사용하여 스플릿 네트워크 호라이즌 전반에 걸쳐 클러스터를 구성하세요. MongoDB 5.0부터 IP 주소로만 구성된 노드는 스타트업 유효성 검사에 실패하며 시작되지 않습니다.

경고

복제본 세트에 두 개 이상의 중재자를 배치하지 마세요. 복수 중재자 관련 우려 사항을 참조하세요.

기존 레플리카 세트에 중재자를 추가하려면 다음과 같이 하세요:

  • 일반적으로 복제본 세트에 데이터를 보유하는 멤버가 두 개 이하인 경우 먼저 복제본 세트에 대한 클러스터 전체 쓰기 우려를 설정해야 할 수 있습니다.

  • 클러스터 전체 쓰기 우려를 설정해야 하는 이유에 대한 자세한 내용은 클러스터 전체 쓰기 우려를 참조하세요.

중재자로 새로운 복제 세트를 시작하기 전에 클러스터 전체의 쓰기 고려 설정을 변경할 필요는 없습니다.

다음도 참조하세요.

중요

변경된 IP 주소로 인해 구성이 업데이트되는 것을 방지하려면 IP 주소 대신 DNS 호스트 이름을 사용하세요. 특히 복제본 세트 구성원 또는 샤드 클러스터 구성원을 구성할 때 IP 주소 대신 DNS 호스트 이름을 사용하는 것이 중요합니다.

IP 주소 대신 호스트 이름을 사용하여 스플릿 네트워크 호라이즌 전반에 걸쳐 클러스터를 구성하세요. MongoDB 5.0부터 IP 주소로만 구성된 노드는 스타트업 유효성 검사에 실패하며 시작되지 않습니다.

  1. 데이터 디렉터리를 만듭니다(예 storage.dbPath) 중재자의 경우. 5} 인스턴스는 구성 데이터에 디렉터리를 mongod 사용합니다. 디렉토리는 데이터 세트를 보유 하지 않습니다. 예를 들어 /var/lib/mongodb/arb 디렉터리를 만듭니다.

    mkdir /var/lib/mongodb/arb
  2. 조인할 복제본 세트의 데이터 디렉터리와 이름을 지정하여 중재자를 시작합니다. 다음은 /var/lib/mongodb/arb 을 복제본 집합 이름의 dbPathrs 로 사용하여 중재자를 시작합니다.

    경고

    로컬 호스트가 아닌(예: 공개적으로 액세스할 수 있는) IP 주소에 바인딩하기 전에 무단 액세스로부터 클러스터를 보호했는지 확인하세요. 보안 권장 사항의 전체 목록은 보안 검사 목록을 참조하세요. 최소한으로 인증을 활성화하고 네트워크 인프라를 강화하는 것을 고려하세요.

    mongod --port 27017 --dbpath /var/lib/mongodb/arb --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  3. 기본 설정에 연결하고 중재자를 복제본 세트에 추가합니다. m1.example.net 가 중재자의 지정된 IP 주소와 연결된 호스트 이름이라고 가정하는 다음 예와 같이 rs.addArb() 메서드를 사용합니다.

    rs.addArb("m1.example.net:27017")

    이 작업은 m1.example.net 호스트의 포트 27017 에서 실행 중인 중재자를 추가합니다.

← 지리적으로 중복된 복제본 세트 배포Deploy a geographically redundant replica set