sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur initierar man mongodb-replikeringsuppsättningen utan att anropa rs.initiate()?

Kort svar / tl;dr

Nej.

Något längre svar

Nej, för det är vettigt att använda skalet.

Svar

När du ställer in en replikuppsättning har du vanligtvis mer än en medlem. Tills replikuppsättningen har initierats har ingen av medlemmarna den nödvändiga konfigurationen. Noden du initierar replikuppsättningen på blir primär och lagrar konfigurationen. Nu lägger du till medlemmar antingen med rs.add kommandot eller genom att använda rs.reconfig . Vad som händer då är att den primära kontaktar den tillagda medlemmen, konfigurationen synkroniseras och några andra saker. Det är bästa praxis att vanliga replikuppsättningsmedlemmar ska vara lika så att en nod misslyckas, det finns ingen nackdel att en annan nod blir primär och så den nya primära kan förbli primär tills den går ner av någon anledning eller den andra själv.

Så om du skulle starta en replikuppsättningsmedlem, var ska den få sin konfiguration ifrån? Bestäm själv vad den ska göra? Det skulle inte fungera bra i ett kluster. Hur ska den upptäcka de andra medlemmarna och deras konfiguration? Kom ihåg att medlemmar av replikuppsättningar kan finnas i olika datacenter. Och om det fanns en --IamPrimaryDoAsISay alternativ, vad skulle hända om det fanns en annan primär för närvarande i klustret? Och hur ska en situation där mer än en medlem startade med den möjligheten hanteras? Ett steg ner från den andra servern? Kan det bero på att du har bytt ut en kylare? Eller ska den nystartade instansen inte göra någonting när det redan fanns en primär? Vilken mening skulle alternativet ha då i första hand?

Och alla dessa komplikationer bara för att förhindra ett enda kommando från skalet?

Obs:Om du vill ha en enda server, starta bara en fristående instans (en mongod utan --replSet option). Om du vill utforska möjligheterna med en replikuppsättning behöver du mer än en medlem.



  1. Överför stora MongoDB-samlingar till data.frame i R med rmongodb och plyr

  2. Infoga array av objekt i MongoDB

  3. Hur hämtar man ett värde från mongoDB, efter dess nyckelnamn?

  4. Spring HATEOAS RepresentationModel, kan inte ställa in egenskapslänkar eftersom ingen setter, ingen vissnar och det inte är en del av persistenskonstruktorn