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

복제본 세트 노드 상태.

복제본 집합의 각 멤버에는 상태가 있습니다.

번호
이름
상태 설명
0
STARTUP
아직 어떤 세트의 활성 멤버도 아닙니다. 모든 멤버는 이 상태에서 시작합니다. mongod복제본 세트 구성 문서STARTUP 상태에서 구문 분석합니다.
1
상태 프라이머리의 멤버는 쓰기 작업을 수락할 수 있는 유일한 멤버입니다. 투표할 수 있습니다.
2
state secondary 의 멤버가 데이터 저장소를 복제하고 있습니다. 투표할 수 있는 자격이 있습니다.
3
멤버는 시작 자체 검사를 수행하거나 롤백 또는 재동기화를 완료한 후 전환합니다. 이 멤버의 데이터는 읽을 수 없습니다. 투표할 수 있습니다.
5
멤버가 초기 동기화를 실행 중입니다. 복제본 세트에 새로 추가된 경우를 제외하고 투표할 수 있습니다.
6
세트의 다른 멤버에서 본 멤버의 상태는 아직 알려지지 않았습니다.
7
중재자는 데이터를 복제하지 않으며 오로지 선거에 참여하기 위해 존재합니다. 투표할 수 있는 자격이 있습니다.
8
세트의 다른 멤버에서 볼 수 있듯이 해당 멤버에 연결할 수 없습니다.
9

이 구성원은 적극적으로 롤백을 수행하고 있습니다. 투표할 수 있는 자격이 있습니다. 이 멤버의 데이터는 읽을 수 없습니다.

버전 4.2부터 MongoDB는 멤버가 ROLLBACK 상태에 들어가면 진행 중인 모든 사용자 작업을 종료합니다.

10
이 구성원은 한때 복제 세트에 있었지만 나중에 제거되었습니다.
PRIMARY

PRIMARY 상태의 멤버는 쓰기 작업을 허용합니다. 복제본 세트에는 한 번에 최대 하나의 기본값만 있습니다. [1] SECONDARY 멤버가 투표 후 프라이머리 멤버가 됩니다. 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 상태가 되며 수동 개입이 필요합니다.

ROLLBACK

투표 시 복제본 세트가 프라이머리를 대체할 때마다 이전 프라이머리에는 세컨더리 멤버에 복제되지 않은 문서가 포함될 수 있습니다. 이 경우 이전 프라이머리 멤버는 해당 쓰기를 되돌립니다. 롤백하는 동안 멤버는 ROLLBACK 상태를 갖게 됩니다. ROLLBACK 주의 회원은 선거에서 투표할 수 있습니다.

버전 4.2부터 MongoDB는 멤버가 ROLLBACK 상태에 들어가면 진행 중인 모든 사용자 작업을 종료합니다.

오류 상태의 회원은 투표할 수 없습니다.

UNKNOWN

복제본 세트에 상태 정보를 전달한 적이 없는 멤버는 UNKNOWN 상태입니다.

DOWN

복제본 세트와의 연결이 끊긴 멤버는 세트의 나머지 멤버에 의해 DOWN으로 표시됩니다.

REMOVED

복제본 세트에서 제거된 멤버는 REMOVED 상태가 됩니다. 멤버가 REMOVED 상태에 들어가면 로그는 이 이벤트를 replSet REMOVED 메시지 항목으로 표시합니다.

[1] 일부 상황에서는 복제본 세트의 두 노드가 일시적으로 자신이 주 노드라고 생각할 수 있지만, { w: "majority" }의 쓰기 우려로 쓰기를 완료할 수 있는 노드는 최대 한 개뿐입니다. { w: "majority" }개의 쓰기를 완료할 수 있는 노드가 현재의 주 노드이고, 다른 노드는 보통 네트워크 파티션으로 인해 강등된 것을 아직 인식하지 못한 이전의 주 노드입니다. 이 경우 이전 주 노드에 연결한 클라이언트는 읽기 기본 설정 primary를 요청했음에도 불구하고 오래된 데이터를 보게 되며, 이전의 주 노드에 대한 새로운 쓰기는 결국 롤백됩니다.

돌아가기

프로토콜 버전