rs.add()
정의
rs.add(host, arbiterOnly)
복제본 세트에 멤버를 추가합니다. 메서드를 실행하려면 복제본 세트의 프라이머리에 연결해야 합니다.
Parameter유형설명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 바인딩
경고
로컬 호스트가 아닌 에 바인딩하기 전에(예: 공개적으로 액세스할 수 있는) IP 주소 인 경우 무단 액세스 로부터 클러스터 를 보호했는지 확인합니다. 보안 권장 사항의 전체 목록은 자체 관리 배포서버를 위한 보안 체크리스트를 참조하세요. 최소한 인증 을 활성화 하고 네트워크 인프라를 강화하는 것을 고려하세요.
2} 및mongod
MongoDB mongos
바이너리는 기본적으로 로컬 호스트에 바인딩됩니다. 바이너리에 대해 net.ipv6
구성 파일 설정 또는 --ipv6
명령줄 옵션이 설정되어 있으면 바이너리가 로컬 호스트 IPv6 주소에 추가적으로 바인딩됩니다.
기본적으로 로컬 호스트에 바인딩된 mongod
및 mongos
는 동일한 컴퓨터에서 실행 중인 클라이언트의 연결만 허용합니다. 이 바인딩 동작에는 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를 실행 중이고 votes
및 priority
설정이 0보다 큰 보조를 추가하는 경우, 투표 회원의 과반수가 온라인 상태이지만 기본 회원을 선출할 수 없는 경우가 발생할 수 있습니다. 이러한 상황을 방지하려면 priority :0
및 votes :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를 실행 중이고 votes
및 priority
설정이 0보다 큰 보조를 추가하는 경우, 투표 회원의 과반수가 온라인 상태이지만 기본 회원을 선출할 수 없는 경우가 발생할 수 있습니다. 이러한 상황을 방지하려면 priority :0
및 votes :0
로 새 보조를 처음에 추가하는 것이 좋습니다. 그런 다음 rs.status()
를 실행하여 멤버가 SECONDARY
상태로 전환되었는지 확인합니다. 마지막으로 rs.reconfig()
를 사용하여 우선 순위와 투표를 업데이트하세요.
복제본 집합에 우선 순위 0 멤버 추가
다음 연산은 호스트 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)
다음도 참조하세요.