Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

자체 관리형 복제본 세트 구성원의 우선 순위 조정

이 페이지의 내용

  • 개요
  • 고려 사항
  • 절차

복제본 세트 멤버의 priority 설정은 프라이머리를 위한 투표의 시기와 결과에 모두 영향을 줍니다. 우선 순위가 높은 멤버는 투표를 호출할 가능성이 더 높으며 선택될 가능성도 더 높습니다. 이 설정을 사용하여 특정 멤버가 기본이 될 가능성을 높이고 다른 멤버는 절대 기본이 되지 않도록 할 수 있습니다.

멤버의 priority 설정 값은 투표에서 해당 멤버의 priority를 결정합니다. 숫자가 높을수록 우선 순위가 높습니다.

우선 순위를 수정하려면 복제본 구성 객체에서 members 배열을 업데이트합니다. 배열 인덱스는 0으로 시작합니다. 이 인덱스 값을 복제본 세트 멤버의 배열에 있는 members[n]._id 필드 값으로 혼동하지 마세요.

priority의 값은 임의의 부동 소수점일 수 있습니다(예: 0에서 1000 사이의 숫자). priority 필드의 기본값은 1입니다.

특정 멤버가 프라이머리로 선출되는 것을 차단하려면 우선 순위를 0으로 지정합니다. 숨겨진 멤버지연된 멤버priority0으로 지정됩니다.

중재자는 0의 우선순위를 가집니다.

예약된 유지 관리 기간 동안 우선 순위 설정을 조정합니다. 우선 순위를 재구성하면 현재 프라이머리가 강등되어 투표가 이루어질 수 있습니다. 투표 전에 프라이머리는 열려 있는 모든 클라이언트 연결을 종료합니다.

members[n].prioritymembers[n].votes는 다음과 같은 관계를 가집니다.

  • 투표권이 없는 경우(예 votes { 2}는 0) 멤버는 priority 이 0이어야 합니다.

  • priority 2}가 0보다 큰 멤버는 0 를 가질 수 votes 없습니다.

따라서 투표권이 없는 멤버의 priority를 높이려면 votes1설정해야 하며, 투표권이 있는 복제본 세트 멤버의 수가 증가합니다. 투표권이 없는 멤버의 우선 순위를 높이기 전에 다음 사항을 고려하세요.

경고

  • rs.reconfig() 2} 셸 메서드는 현재 기본값이 강제로 물러나도록 하여 선거를 실시할 수 있습니다. 기본 연결이 종료되면 mongod 모든 클라이언트 연결을 닫습니다. 일반적으로 10~20초 정도 소요되지만 예약된 유지 관리 기간 동안 이러한 변경을 수행해 보세요.

  • 유효성 검사 규칙은 MongoDB 버전마다 다를 수 있으므로 다른 MongoDB 버전의 멤버를 포함하는 복제본 세트를 다시 구성하지 마십시오.

1

mongosh에서 rs.conf()를 사용하여 복제본 세트 구성을 조회하고 변수에 할당합니다. 예시:

cfg = rs.conf()
2

members 배열에 구성된 대로 각 멤버의 members[n].priority 값을 변경합니다.

cfg.members[0].priority = 0.5
cfg.members[1].priority = 2
cfg.members[2].priority = 2

이 작업 시퀀스는 cfg 값을 수정하여 members 배열에 정의된 처음 세 멤버의 우선 순위를 설정합니다.

3

rs.reconfig()를 사용하여 새 구성을 적용합니다.

rs.reconfig(cfg)

이 작업은 cfg 값으로 정의된 구성을 사용하여 복제본 세트의 구성을 업데이트합니다.

돌아가기

투표권이 없는 노드

이 페이지의 내용