복제본 집합의 각 멤버에는 상태가 있습니다.
번호 | 이름 | 상태 설명 |
|---|---|---|
0 | 아직 어떤 설정하다 의 활성 멤버도 아닙니다. 모든 멤버는 이 상태 에서 시작합니다. 는 에 있는 | |
1 | 상태 프라이머리의 멤버는 쓰기 작업을 수락할 수 있는 유일한 멤버입니다. 투표할 수 있습니다. | |
2 | state secondary 의 멤버가 데이터 저장소를 복제하고 있습니다. 투표할 수 있는 자격이 있습니다. | |
3 | ||
5 | 멤버가 초기 동기화를 실행 중입니다. 복제본 세트에 새로 추가된 경우를 제외하고 투표할 수 있습니다. | |
6 | 세트의 다른 멤버에서 본 멤버의 상태는 아직 알려지지 않았습니다. | |
7 | 중재자는 데이터를 복제하지 않으며 오로지 선거에 참여하기 위해 존재합니다. 투표할 수 있는 자격이 있습니다. | |
8 | 세트의 다른 멤버에서 볼 수 있듯이 해당 멤버에 연결할 수 없습니다. | |
9 | ||
10 | 이 구성원은 한때 복제 세트에 있었지만 나중에 제거되었습니다. |
주
핵심 상태
PRIMARY상태 의
PRIMARY멤버는 쓰기 (write) 작업을 허용합니다. 복제본 세트 한 번에 최대 하나 프라이머리 있습니다. []1SECONDARY회원이 투표 후 프라이머리 됩니다. 상태PRIMARY회원은 투표할 수 있습니다.
SECONDARYSECONDARY상태의 멤버는 프라이머리 데이터 세트를 복제하며 읽기 작업을 허용하도록 구성할 수 있습니다. 세컨더리는 선거에서 투표할 수 있으며, 프라이머리를 사용할 수 없게 되는 경우PRIMARY상태로 선출될 수 있습니다.
ARBITERARBITER상태의 멤버는 데이터를 복제하거나 쓰기 작업을 허용하지 않습니다. 이들은 투표할 수 있는 자격이 있으며, 선거 시 동점을 깨기 위해서만 존재합니다. 복제본 집합은 집합의 투표 멤버 수가 짝수이고 동점 선거가 발생할 수 있는 경우에만ARBITER상태의 멤버를 가져야 합니다. 모든 복제본 세트에는 최대 하나의 중재자만 구성되어야 합니다. 중재자를 사용할 때 고려해야 할 사항은 복제본 세트 중재자를 참조하세요.
코어 상태에 대한 자세한 내용은 Replica Set Members를 참조하십시오.
기타 주
STARTUP복제본 세트의 각 멤버는
STARTUP상태로 시작됩니다. 그런 다음mongod는 해당 멤버의 복제본 세트 구성을 로드하고 멤버의 상태를STARTUP2또는ARBITER로 전환합니다.STARTUP에 있는 멤버는 아직 복제본 세트의 멤버가 아니므로 투표할 수 없습니다.
STARTUP2버전 5.0에서 변경됨
복제본 세트의 각 데이터 보유 멤버는
mongod가 해당 멤버의 구성 로드를 완료 즉시STARTUP2상태로 전환됩니다.그런 다음 멤버는 초기 동기화를 수행할지 여부를 결정합니다. 멤버가 초기 동기화를 시작하면 모든 데이터가 복사되고 모든 인덱스가 작성될 때까지 멤버는
STARTUP2에 남아 있습니다. 그 후 멤버는RECOVERING로 전환됩니다.STARTUP2에 새로 추가된 멤버는 투표할 수 없으며 초기 동기화 프로세스 중에 선출될 수 없습니다. MongoDB 5.0 이전 버전에서는STARTUP2의 멤버에게 투표 자격이 있었습니다.
RECOVERING복제본 세트의 멤버가 읽기를 수락할 준비가 되지 않은 경우
RECOVERING상태가 됩니다.RECOVERING상태는 정상 작동 중에 발생할 수 있으며 반드시 오류 상태를 반영하는 것은 아닙니다.RECOVERING상태에 있는 멤버는 투표할 수 있지만PRIMARY상태에 들어갈 자격은 없습니다.멤버는 클라이언트 읽기에 대한 데이터의 일관된 보기를 보장할 수 있을 만큼 충분한 데이터를 복제한 후
RECOVERING에서SECONDARY로 전환합니다.RECOVERING상태와SECONDARY상태의 유일한 차이점은RECOVERING은 클라이언트 읽기를 금지하고SECONDARY는 허용한다는 것입니다.SECONDARY상태는 기본 상태와 관련하여 데이터의 부실성에 대해 아무것도 보장하지 않습니다.과부하로 인해 세컨더리가 복제본 세트의 다른 구성원보다 훨씬 뒤처져 나머지 세트와 다시 동기화해야 할 수 있습니다. 이 경우 멤버는
RECOVERING상태가 되며 수동 개입이 필요합니다.
오류 상태
오류 상태의 회원은 투표할 수 없습니다.
UNKNOWN복제본 세트에 상태 정보를 전달한 적이 없는 멤버는
UNKNOWN상태입니다.
DOWN복제본 세트와의 연결이 끊긴 멤버는 세트의 나머지 멤버에 의해
DOWN으로 표시됩니다.
REMOVED복제본 세트에서 제거된 멤버는
REMOVED상태가 됩니다. 멤버가REMOVED상태에 들어가면 로그는 이 이벤트를replSet REMOVED메시지 항목으로 표시합니다.
| [1] | 일부 상황에서는 복제본 세트의 두 노드가 일시적으로 자신이 주 노드라고 생각할 수 있지만, { w:
"majority" }개의 쓰기 우려로 쓰기를 완료할 수 있는 노드는 최대 한 개뿐입니다. { w: "majority" }개의 쓰기를 완료할 수 있는 노드가 현재의 주 노드이고, 다른 노드는 보통 네트워크 파티션으로 인해 강등된 것을 아직 인식하지 못한 이전의 주 노드입니다. 이 경우 이전 주 노드에 연결한 클라이언트는 읽기 기본 설정 primary를 요청했음에도 불구하고 오래된 데이터를 보게 되며, 이전의 주 노드에 대한 새로운 쓰기는 결국 롤백됩니다. |