Replikering av MongoDB-databaser foregår via en topologi som kalles et replica set. Replica sets distribuerer data over flere maskiner slik at man oppnår:
- Redundancy – data er tilgjengelig fra flere maskiner
- Automatisk failover – hvis en maskin feiler, tar en annen over
Dette sikrer at data er tilgjenglige hvis man får feil på maskiner eller netverk.
I tillegg brukes replikering som en metode til å skalere opp lesing fra databasen. Hvis man har en lese-intensiv applikasjon, som f.eks. er vanlig med internett-applikasjoner, kan man spre lesingen over flere maskiner i en klynge med replica set.
Replica sets består av én primærnode og en eller flere sekundærnoder. Primærnoden kan foreta både lese og skriveoperasjoner, mens sekundærnoden(e) kun foretar leseoperasjoner (read-only). Det som er unikt med replica sets er at de foretar en automatisk failover. Hvis primærnoden går ned, forfremmer klyngen automatisk en av sekundeærnodene til ny primærnode. Når den tidligere primærnoden er operativ igjen, vil den bli tildelt rolle som sekundærnode. Bildet under illustrerer dette scenariet: