투표권이 없는 자체 관리형 복제본 세트 구성원 구성
투표권이 없는 멤버를 사용하면 최대 7명의 투표 멤버를 초과하여 읽기 배포를 위한 멤버를 추가할 수 있습니다.
멤버를 투표권이 없는 멤버로 구성하려면 replSetReconfig
명령 또는 해당 mongosh
헬퍼 메서드 rs.reconfig()
를 설정하다 하여 members[n].votes
및 members[n].priority
값을 0
으)로 설정합니다. 투표권이 없는 복제본 세트 멤버 는 priority
0
를 가져야 합니다.
참고
복제본 재구성은 한 번에 둘 이상의 투표 복제본 세트 멤버를 추가하거나 제거할 수 없습니다. 여러 멤버의 투표권을 수정하려면 replSetReconfig
또는 rs.reconfig()
작업을 연속으로 실행하여 한 번에 한 명의 멤버를 수정합니다. 자세한 내용은 재구성 시 한 번에 투표 멤버 둘 이상을 추가 또는 제거할 수 없음에서 확인하세요.
절차
다음 절차에서는 단일 세컨더리 복제본 세트 멤버를 투표권이 없는 멤버로 구성합니다. 프라이머리 멤버를 투표권이 없는 멤버로 변환하려면, 이 절차를 수행하기 전에 먼저 replSetStepDown
또는 해당 셸 헬퍼 rs.stepDown()
을 사용하여 프라이머리 멤버를 성공적으로 강등해야 합니다.
- 1) 복제본 세트 프라이머리에 연결
mongosh
를 프라이머리 기본 복제본 세트에 연결합니다.mongosh --host "<hostname>:<port>" <hostname>
및<port>
를 복제본 세트 프라이머리의 호스트 이름 및 포트로 바꿉니다. 배포에 필요한 다른 매개 변수를 포함합니다.- 2) 복제본 구성 조회
셸에서
rs.conf()
메서드를 실행하고 결과를 변수cfg
에 할당합니다.cfg = rs.conf(); 반환된 문서에는
members
배열이 포함되며, 배열의 각 요소에는 복제본 세트 멤버에 대한 구성이 포함됩니다.- 3) 멤버를 투표권이 없는 멤버로 구성
복제본 멤버를 투표권이 없는 멤버로 변경하려면
votes
및priority
를0
으로 설정합니다.cfg.members[n].votes = 0; cfg.members[n].priority = 0; n
을 수정할 멤버의 배열 인덱스 위치로 바꿉니다.members
배열은 인덱스가 0이며 배열의 첫 번째 요소의 인덱스 위치는0
입니다.members
배열에서 멤버의 배열 인덱스 위치는 특정 멤버의members[n]._id
와 구별됩니다 ._id
를 사용하여members
에 있는 모든 멤버의 배열 인덱스 위치를 참조하지 마세요.- 4) 새 구성으로 복제본 세트 재구성
rs.reconfig()
메서드를 사용하여 업데이트된 복제본 세트 구성 문서로 복제본 세트를 다시 구성합니다.rs.reconfig(cfg);
경고
rs.reconfig()
2} 셸 메서드는 현재 기본값이 강제로 물러나도록 하여 선거를 실시할 수 있습니다. 기본 연결이 종료되면mongod
모든 클라이언트 연결을 닫습니다. 일반적으로 10~20초 정도 소요되지만 예약된 유지 관리 기간 동안 이러한 변경을 수행해 보세요.유효성 검사 규칙은 MongoDB 버전마다 다를 수 있으므로 다른 MongoDB 버전의 멤버를 포함하는 복제본 세트를 다시 구성하지 마십시오.