- 复制 >
- Replication Reference >
- Replica Set Member States
Replica Set Member States¶
Members of replica sets have states that reflect the startup process, basic operations, and potential error states.
Number | Name | State Description |
---|---|---|
0 | STARTUP | Cannot vote. All members start up in this state. The mongod parses the replica set configuration document while in STARTUP. |
1 | PRIMARY | Can vote. The primary is the only member to accept write operations. |
2 | SECONDARY | Can vote. The secondary replicates the data store. |
3 | RECOVERING | Can vote. Members either perform startup self-checks, or transition from completing a rollback or resync. |
4 | FATAL | Cannot vote. Has encountered an unrecoverable error. |
5 | STARTUP2 | Cannot vote. Forks replication and election threads before becoming a secondary. |
6 | UNKNOWN | Cannot vote. Has never connected to the replica set. |
7 | ARBITER | Can vote. Arbiters do not replicate data and exist solely to participate in elections. |
8 | DOWN | Cannot vote. Is not accessible to the set. |
9 | ROLLBACK | Can vote. Performs a rollback. |
10 | REMOVED | Cannot vote. Was once in the replica set but has now been removed. |
States¶
Core States¶
- PRIMARY¶
Members in PRIMARY state accept write operations. A replica set has only one primary at a time. A SECONDARY member becomes primary after an election. Members in the PRIMARY state are eligible to vote.
- SECONDARY¶
Members in SECONDARY state replicate the primary’s data set and can be configured to accept read operations. Secondaries are eligible to vote in elections, and may be elected to the PRIMARY state if the primary becomes unavailable.
- ARBITER¶
Members in ARBITER state do not replicate data or accept write operations. They are eligible to vote, and exist solely to break a tie during elections. Replica sets should only have a member in the ARBITER state if the set would otherwise have an even number of members, and could suffer from tied elections. Like primaries, there should only be at most one arbiter in any replica set.
See 复制集成员 for more information on core states.
Initialization States¶
- STARTUP¶
Each member of a replica set starts up in STARTUP state. mongod then loads that member’s replica set configuration, and transitions the member’s state to STARTUP2. Members in STARTUP are not eligible to vote.
- STARTUP2¶
Each member of a replica set enters the STARTUP2 state as soon as mongod finishes loading that member’s configuration. While in the STARTUP2 state, the member creates threads to handle internal replication operations. Members are in the STARTUP2 state for a short period of time before entering the RECOVERING state. Members in the STARTUP2 state are not eligible to vote.
- RECOVERING¶
A member of a replica set enters RECOVERING state when it is not ready to accept reads. The RECOVERING state can occur during normal operation, and doesn’t necessarily reflect an error condition. Members in the RECOVERING state are eligible to vote in elections, but is not eligible to enter the PRIMARY state.
During startup, members transition through RECOVERING after STARTUP2 and before becoming SECONDARY.
During normal operation, if a secondary falls behind the other members of the replica set, it may need to resync with the rest of the set. While resyncing, the member enters the RECOVERING state.
Whenever the replica set replaces a primary in an election, the old primary’s data collection may contain documents that did not have time to replicate to the secondary members. In this case the member rolls back those writes. During rollback, the member will have RECOVERING state.
On secondaries, the compact and replSetMaintenance commands force the secondary to enter RECOVERING state. This prevents clients from reading during those operations.
Error States¶
Members in any error state can’t vote.
- FATAL¶
Members that encounter an unrecoverable error enter the FATAL state. Members in this state requires administrator intervention.
- UNKNOWN¶
Members that have never communicated status information to the replica set are in the UNKNOWN state.
- DOWN¶
Members that lose their connection to the replica set enter the DOWN state.
- REMOVED¶
Members that are removed from the replica set enter the REMOVED state. When members enter the REMOVED state, the logs will mark this event with a replSet REMOVED message entry.