문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

복제본 세트 노드 상태.

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

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

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

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

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

PRIMARY 상태의 멤버는 쓰기 작업을 허용합니다. 복제본 세트에는 한 번에 최대 하나의 프라이머리만 있습니다. [1] SECONDARY 회원 은 투표 후 프라이머리 가 됩니다 . PRIMARY 주의 회원은 투표할 수 있습니다.

SECONDARY

SECONDARY 상태의 멤버는 프라이머리의 데이터 세트를 복제하며 읽기 작업을 허용하도록 구성할 수 있습니다. 차순위자는 선거에서 투표할 수 있으며, 차순위자가 투표할 수 없는 경우 PRIMARY 주에서 선출될 수 있습니다.

ARBITER

ARBITER 상태의 멤버는 데이터를 복제하거나 쓰기 작업을 허용하지 않습니다. 그들은 투표할 수 있으며, 투표 기간 동안 동점을 깨기 위한 목적으로만 존재합니다. 복제본 세트는 세트에 투표권이 있는 멤버 수가 짝수이고 투표가 동점일 수 있는 경우에만 ARBITER 상태의 멤버를 가져야 합니다. 모든 복제본 세트에는 최대 하나의 중재자만 구성해야 합니다. 중재자를 사용할 때 고려해야 할 사항은 복제본 세트 중재자를 참조하세요.

코어 상태에 대한 자세한 내용은 Replica Set Members를 참조하십시오.

STARTUP

복제본 세트의 각 멤버는 STARTUP 상태로 시작됩니다. 그런 다음 mongod 는 해당 멤버의 복제본 세트 구성을 로드하고 멤버의 상태를 STARTUP2 또는 ARBITER 로 전환합니다. STARTUP 에 있는 회원은 아직 복제본 세트의 구성원이 아니므로 투표할 수 없습니다.

STARTUP2

버전 5.0에서 변경됨

복제본 세트의 각 데이터 보유 STARTUP2 mongod 멤버는 가 해당 멤버의 구성 로드를 완료하는 즉시 상태로 전환됩니다.

그런 다음 멤버는 초기 동기화를 수행할지 여부를 결정합니다. 멤버가 초기 동기화를 시작하면 모든 데이터가 복사되고 모든 인덱스가 작성될 때까지 멤버는 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, 멤버가 ROLLBACK 상태에 들어가면 MongoDB는 진행 중인 모든 사용자 작업을 종료합니다.

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

UNKNOWN

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

DOWN

복제본 세트에 대한 연결이 끊어진 멤버는 세트의 나머지 멤버에게 DOWN (으)로 표시됩니다.

REMOVED

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

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