복제본 세트 노드 상태.
복제본 집합의 각 멤버에는 상태가 있습니다.
번호 | 이름 | 상태 설명 |
---|---|---|
0 | 아직 어떤 설정하다 의 활성 멤버도 아닙니다. 모든 멤버는 이 상태 에서 시작합니다. 는 | |
1 | 상태 프라이머리의 멤버는 쓰기 작업을 수락할 수 있는 유일한 멤버입니다. 투표할 수 있습니다. | |
2 | state secondary 의 멤버가 데이터 저장소를 복제하고 있습니다. 투표할 수 있는 자격이 있습니다. | |
3 | ||
5 | 멤버가 초기 동기화를 실행 중입니다. 복제본 세트에 새로 추가된 경우를 제외하고 투표할 수 있습니다. | |
6 | 세트의 다른 멤버에서 본 멤버의 상태는 아직 알려지지 않았습니다. | |
7 | 중재자는 데이터를 복제하지 않으며 오로지 선거에 참여하기 위해 존재합니다. 투표할 수 있는 자격이 있습니다. | |
8 | 세트의 다른 멤버에서 볼 수 있듯이 해당 멤버에 연결할 수 없습니다. | |
9 | ||
10 | 이 구성원은 한때 복제 세트에 있었지만 나중에 제거되었습니다. |
주
핵심 상태
PRIMARY
PRIMARY
상태 의 멤버는 쓰기 (write) 작업을 허용합니다. 복제본 세트 에는 한 번에 최대 하나의 프라이머SECONDARY
프라이머리 있습니다. [ ]1 회원 은 투표 후 프라이머리 가 됩니다 . 상태PRIMARY
회원은 투표할 수 있습니다.
SECONDARY
SECONDARY
상태의 멤버는 프라이머리 데이터 세트를 복제하며 읽기 작업을 허용하도록 구성할 수 있습니다. 세컨더리는 선거에서 투표할 수 있으며, 프라이머리를 사용할 수 없게 되는 경우PRIMARY
상태로 선출될 수 있습니다.
ARBITER
ARBITER
상태의 멤버는 데이터를 복제하거나 쓰기 작업을 허용하지 않습니다. 이들은 투표할 수 있는 자격이 있으며, 선거 시 동점을 깨기 위해서만 존재합니다. 복제본 집합은 집합의 투표 멤버 수가 짝수이고 동점 선거가 발생할 수 있는 경우에만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 를 요청했음에도 불구하고 오래된 데이터를 보게 되며, 이전의 주 노드에 대한 새로운 쓰기는 결국 롤백됩니다. |