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

rs.add()

이 페이지의 내용

  • 정의
  • IP 바인딩
  • 행동
  • 예제
rs.add(host, arbiterOnly)

복제본 세트 에 멤버를 추가합니다. 이 메서드를 실행하려면 복제본 세트의 프라이머리 에 연결해야 합니다.

매개 변수
유형
설명
host
문자열 또는 문서

복제본 세트에 추가할 새 멤버입니다. 다음과 같이 문자열 또는 구성 문서 중 하나로 지정하세요.

  • 문서인 경우 members 배열에 있는 복제본 세트 멤버 구성 문서를 지정합니다. 멤버 구성 문서에서 host 필드를 지정해야 합니다.

    {
    _id: <int>,
    host: <string>, // required
    arbiterOnly: <boolean>,
    buildIndexes: <boolean>,
    hidden: <boolean>,
    priority: <number>,
    tags: <document>,
    secondaryDelaySecs: <int>,
    votes: <number>
    }

    구성 필드에 대한 설명은 members를 참조하세요.

  • 문자열인 경우 새 노드의 호스트 이름과 포트 번호(선택 사항)를 지정합니다.

arbiterOnly
부울
선택 사항. <host> 값이 문자열인 경우에만 적용됩니다. true이면 추가된 호스트가 중재자입니다.

rs.add()replSetReconfig 데이터베이스 명령의 일부 기능과 해당 mongosh 헬퍼 rs.reconfig()를 감싸는 래퍼를 제공합니다. 모든 복제본 세트 구성 옵션에 대한 전체 문서는 복제본 세트 구성 문서를 참조하세요.

경고

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

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

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

기본 바인딩을 재정의하고 다른 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 주소로만 구성된 노드는 스타트업 유효성 검사에 실패하며 시작되지 않습니다.

rs.add()는 경우에 따라 셸 연결을 끊는 프라이머리에 대한 투표를 트리거할 수 있습니다(예: 현재 프라이머리보다 우선 순위가 높은 새 노드를 추가하는 경우). 이러한 경우 작업이 성공하더라도 mongosh에 오류가 표시될 수 있습니다.

경고

MongoDB 5.0 이전에는 데이터가 일관될 때까지 새로 추가된 보조 서버가 읽기 작업을 수행하거나 기본 서버가 될 수 없더라도 여전히 투표 멤버로 간주됩니다. 5.0 이전 버전의 MongoDB를 실행 중이고 votespriority 설정이 0보다 큰 보조를 추가하는 경우, 투표 회원의 과반수가 온라인 상태이지만 기본 회원을 선출할 수 없는 경우가 발생할 수 있습니다. 이러한 상황을 방지하려면 priority :0votes :0 새 보조를 처음에 추가하는 것이 좋습니다. 그런 다음 rs.status() 실행하여 멤버가 SECONDARY 상태로 전환되었는지 확인합니다. 마지막으로 rs.reconfig() 를 사용하여 우선 순위와 투표를 업데이트하세요.

새 복제본 세트에 기본 투표 및 우선 순위 설정이 있는 새 세컨더리 노드를 추가하려면 rs.add() 메서드를 사용하여 호출하면 됩니다.

  • 구성원 구성 문서

    rs.add( { host: "mongodbd4.example.net:27017" } )
  • 호스트 이름

    rs.add( "mongodbd4.example.net:27017" )

기존 복제본 세트에 기본 투표 및 우선순위 설정이 있는 새 세컨더리 멤버를 추가합니다.

rs.add( { host: "mongodbd4.example.net:27017" } )

경고

MongoDB 5.0 이전에는 데이터가 일관될 때까지 새로 추가된 보조 서버가 읽기 작업을 수행하거나 기본 서버가 될 수 없더라도 여전히 투표 멤버로 간주됩니다. 5.0 이전 버전의 MongoDB를 실행 중이고 votespriority 설정이 0보다 큰 보조를 추가하는 경우, 투표 회원의 과반수가 온라인 상태이지만 기본 회원을 선출할 수 없는 경우가 발생할 수 있습니다. 이러한 상황을 방지하려면 priority :0votes :0 새 보조를 처음에 추가하는 것이 좋습니다. 그런 다음 rs.status() 실행하여 멤버가 SECONDARY 상태로 전환되었는지 확인합니다. 마지막으로 rs.reconfig() 를 사용하여 우선 순위와 투표를 업데이트하세요.

다음 연산은 호스트 mongodb4.example.net에서 실행되고 기본 포트 27017에서 액세스할 수 있는 mongod 인스턴스를 우선 순위 0의 세컨더리 멤버로 추가합니다.

rs.add( { host: "mongodbd4.example.net:27017", priority: 0 } )

노드 구성 문서에서 members[n].host 필드를 지정해야 합니다.

사용 가능한 복제본 세트 멤버 구성 설정은 members를 참조하세요.

다음 연산은 호스트 mongodb3.example.net에서 실행되고 기본 포트 27017에서 액세스할 수 있는 mongod 인스턴스를 중재자로 추가합니다.

  • 구성원 구성 문서

    rs.add( { host: "mongodb3.example.net:27017", arbiterOnly: true } )
  • 호스트 이름

    rs.add("mongodb3.example.net:27017", true)

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

  • MongoDB 3.4.1

  • MongoDB 3.4.0

  • MongoDB 3.2.11 또는 이전 버전

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

다음도 참조하세요.

← 복제 방법

이 페이지의 내용