정의
rs.remove(hostname)hostname매개 변수로 설명하는 멤버를 현재 복제본 집합에서 제거합니다. 이 함수는 셸 연결을 잠시 끊고 복제본 세트가 기본 구성원을 재협상할 때 강제로 다시 연결합니다. 결과적으로 이 명령이 성공하더라도 셸에는 오류가 표시됩니다.rs.remove()메서드에는 다음과 같은 매개변수가 있습니다:Parameter유형설명hostname문자열
복제본 세트에 있는 시스템의 호스트 이름입니다.
참고
rs.remove()작업을 실행 전에 제거하려는 복제본 세트 멤버를 종료하는 것이 좋습니다.
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
행동
글로벌 쓰기 우려
노드를 제거하면 복제본 세트의 투표 노드 수가 변경됩니다. 이로 인해 암시적 기본값 쓰기 고려 (write concern)가 변경될 수 있습니다.
암시적 기본 쓰기 고려 (write concern)를 변경하는 구성 으로 복제본 세트 를 재구성하기 전에 전역 기본값 쓰기 고려 (write concern) 를 명시적으로 설정해야 합니다. 글로벌 기본값 쓰기 고려 (write concern)를 설정하려면 setDefaultRWConcern 명령을 사용합니다.
제거는 과반수의 노드가 복제본 구성을 설치할 때까지 기다립니다.
rs.remove()는 제거된 멤버를 생략한 구성으로 replSetReconfig 명령을 실행합니다. 이 메서드는 투표권이 있는 복제본 세트 멤버의 과반수가 새 복제본 구성을 설치할 때까지 기다렸다가 성공 반환합니다. 투표 멤버는 중재자를 포함하여 members[n].votes가 1인 모든 복제본 세트 멤버입니다. 복제본 세트 멤버가 새 구성을 설치하는 방법을 학습 재구성은 과반수 멤버가 복제본 구성을 설치할 때까지 대기를 참조하세요.
rs.remove()는 maxTimeMS 제한을 허용하지 않습니다. 투표 멤버의 과반수가 새 구성을 설치하지 않으면 작업이 무기한 대기합니다.
제거된 멤버에 대한 연결
기본적으로 복제 세트 구성원은 제거된 구성원에 대한 연결을 제거하기 전에 5분 동안 기다립니다. 샤드된 복제본 세트에서는 ShardingTaskExecutorPoolHostTimeoutMS 서버 매개변수를 사용하여 이 시간 제한을 수정할 수 있습니다.
복제본 세트에서 제거된 노드로 나가는 모든 연결을 즉시 삭제하려면 복제본 세트의 나머지 각 노드에 대해 dropConnections 관리 명령을 실행합니다.
db.adminCommand( { "dropConnections" : 1, "hostAndPort" : [ "<hostname>:<port>" ] } )
0}을 <hostname> 제거된 구성원의 호스트 <port> mongod 이름으로 바꾸고 을 이 수신 대기하는 포트로 바꿉니다.