개요
복제본 세트 멤버의 priority 설정은 프라이머리를 위한 투표의 시기와 결과에 모두 영향을 줍니다. 우선 순위가 높은 멤버는 투표를 호출할 가능성이 더 높으며 선택될 가능성도 더 높습니다. 이 설정을 사용하여 특정 멤버가 기본이 될 가능성을 높이고 다른 멤버는 절대 기본이 되지 않도록 할 수 있습니다.
멤버의 priority 설정 값은 투표에서 해당 멤버의 priority를 결정합니다. 숫자가 높을수록 우선 순위가 높습니다.
고려 사항
우선 순위를 수정하려면 복제본 구성 객체에서 members 배열을 업데이트합니다. 배열 인덱스는 0으로 시작합니다. 이 인덱스 값을 복제본 세트 멤버의 배열에 있는 members[n]._id 필드 값으로 혼동하지 마세요.
priority의 값은 임의의 부동 소수점일 수 있습니다(예: 0에서 1000 사이의 숫자). priority 필드의 기본값은 1입니다.
특정 멤버가 프라이머리로 선출되는 것을 차단하려면 우선 순위를 0으로 지정합니다. 숨겨진 멤버와 지연된 멤버는 priority가 0으로 지정됩니다.
중재자는 0의 우선순위를 가집니다.
예약된 유지 관리 기간 동안 우선 순위 설정을 조정합니다. 우선 순위를 재구성하면 현재 프라이머리가 강등되어 투표가 이루어질 수 있습니다. 투표 전에 프라이머리는 열려 있는 모든 클라이언트 연결을 종료합니다.
우선 순위 및 투표
members[n].priority와 members[n].votes는 다음과 같은 관계를 가집니다.
priority2}가 0보다 큰 멤버는 0 를 가질 수votes없습니다.
따라서 투표권이 없는 멤버의 priority를 높이려면 votes를 1로 설정해야 하며, 투표권이 있는 복제본 세트 멤버의 수가 증가합니다. 투표권이 없는 멤버의 우선 순위를 높이기 전에 다음 사항을 고려하세요.
MongoDB 복제본 세트는 7명 이하의 투표 멤버를 가질 수 있습니다. 복제본 세트에 이미 투표권이 있는 멤버가 7명인 경우, 복제본 세트에 남아 있는 멤버의 우선 순위를
0보다 크게 수정할 수 없습니다.복제본 재구성에서는 한 번에 투표 멤버를 한 명만 추가하거나 제거할 수 있습니다. 투표권이 없는 여러 멤버를
0보다 높은 우선 순위를 갖도록 변경하려면replSetReconfig또는rs.reconfig()의 작업을 실행하여 한 번에 한 명의 멤버를 수정합니다. 자세한 내용은 재구성 시 한 번에 투표 멤버 하나 이상을 추가 또는 제거할 수 없음에서 확인 가능합니다.
절차
경고
rs.reconfig()2} 셸 메서드는 현재 기본값이 강제로 물러나도록 하여 선거를 실시할 수 있습니다. 기본 연결이 종료되면mongod모든 클라이언트 연결을 닫습니다. 일반적으로 10~20초 정도 소요되지만 예약된 유지 관리 기간 동안 이러한 변경을 수행해 보세요.유효성 검사 규칙은 MongoDB 버전마다 다를 수 있으므로 다른 MongoDB 버전의 멤버를 포함하는 복제본 세트를 다시 구성하지 마십시오.
각 멤버의 우선 순위 값을 변경합니다.
members 배열에 구성된 대로 각 멤버의 members[n].priority 값을 변경합니다.
cfg.members[0].priority = 0.5 cfg.members[1].priority = 2 cfg.members[2].priority = 2
이 작업 시퀀스는 cfg 값을 수정하여 members 배열에 정의된 처음 세 멤버의 우선 순위를 설정합니다.
복제본 세트에 새 구성을 지정합니다.
rs.reconfig()를 사용하여 새 구성을 적용합니다.
rs.reconfig(cfg)
이 작업은 cfg 값으로 정의된 구성을 사용하여 복제본 세트의 구성을 업데이트합니다.