MongoDB Replikering: Hur man skapar MongoDB Replik Set

⚡ Smart sammanfattning

MongoDB Replikering sparar identiska data på mer än en MongoDB server, vilket skyddar mot serverfel och möjliggör lastbalansering. Grupperad MongoDB instanser bildar en replikuppsättning med en primär medlemmar som accepterar skrivningar och sekundära medlemmar som hanterar läsoperationer och redundans.

  • 🗄️ Kärnkoncept: Replikering kopierar samma data till flera servrar så att informationen förblir tillgänglig även om den primära servern går sönder.
  • ???? Primär och sekundär: En replikmängd har en primär medlem som accepterar skrivningar och sekundära medlemmar som hanterar läsningar.
  • 🚀 Skapande av set: Kommandot rs.initiate() startar en replikuppsättning efter att den första mongod-instansen har startats med alternativet replSet.
  • Lägga till medlemmar: Kommandot rs.add() ansluter sekundära servrar, medan rs.remove() kopplar bort en medlem från konfigurationen.
  • 🔧 Felsökning: Kommandona rs.status() och rs.printReplicationInfo() visar hjärtslagshälsa och Oplog-storlek för diagnos.

MongoDB Replikering: Hur man skapar MongoDB Replik Set

Vad är MongoDB Replikering?

Replikering kallas processen att säkerställa att samma data är tillgänglig på mer än ett MongoDB Server. Detta krävs ibland för att öka datatillgängligheten.

För om din huvudsakliga MongoDB Servern går ner av någon anledning, det kommer inte att finnas tillgång till data. Men om du hade data replikeras till en annan server med jämna mellanrum, kommer du att kunna komma åt data från en annan server även om den primära servern misslyckas.

Ett annat syfte med replikering är möjligheten till lastbalansering. Om det finns många användare som ansluter till systemet, istället för att alla ansluter till ett system, kan användare anslutas till flera servrar så att det blir en jämn fördelning av belastningen.

In MongoDB, flera MongoDB Servrar grupperas i uppsättningar som kallas replikuppsättningar. Replikuppsättningen har en primär server som accepterar alla skrivoperationer från klienter. Alla andra instanser som läggs till i uppsättningen efter detta kallas sekundära instanser, vilka primärt kan användas för alla läsoperationer.

Hur man skapar en replikuppsättning MongoDB Lägga till den första medlemmen med rs.initiate()

Som nämnts i föregående avsnitt, för att aktivera replikering, måste vi först skapa en replikuppsättning av MongoDB instanser.

Låt oss anta att vi i vårt exempel har tre servrar som heter ServerA, ServerB och ServerC. I den här konfigurationen kommer ServerA att vara vår primära server, och ServerB och ServerC kommer att vara våra sekundära servrar. Skärmdumpen nedan ger en bättre uppfattning om det.

Skapa Replica Set in MongoDB

Nedan är stegen som måste följas för att skapa MongoDB replikuppsättning tillsammans med tillägget av den första medlemmen till uppsättningen.

Steg 1) Se till att alla mongod.exe-instanser har lagts till

Se till att alla mongod.exe-instanser som ska läggas till i replikuppsättningen är installerade på olika servrar. Detta för att säkerställa att även om en server går ner, kommer de andra att vara tillgängliga, och därmed andra instanser av MongoDB kommer att finnas tillgängligt.

Steg 2) Alla mongo.exe-instanser ansluter till varandra

Se till att alla mongo.exe-instanser kan ansluta till varandra. Från ServerA, utfärda följande 2 kommandon.

mongo --host ServerB --port 27017
mongo --host ServerC --port 27017

På samma sätt gör du samma sak från de återstående servrarna.

Steg 3) Starta den första mongod.exe-instansen

Starta den första mongod.exe-instansen med alternativet replSet. Det här alternativet tillhandahåller en gruppping för alla servrar som kommer att ingå i denna replikuppsättning.

mongo --replSet "Replica1"

Där "Replica1" är namnet på din replikuppsättning. Du kan välja vilket meningsfullt namn som helst för ditt replikuppsättningsnamn.

Steg 4) Första servern läggs till i replikuppsättningen

Nu när den första servern har lagts till i replikuppsättningen är nästa steg att initiera replikuppsättningen genom att köra följande kommando rs.initiate().

Steg 5) Verifiera replikuppsättningen

Verifiera replikuppsättningen genom att köra kommandot rs.conf() för att säkerställa att replikuppsättningen är korrekt konfigurerad.

Replikuppsättning: Lägga till en sekundär med rs.add()

De sekundära servrarna kan läggas till replikuppsättningen genom att bara använda kommandot rs.add. Detta kommando tar in namnet på de sekundära servrarna och lägger till servrarna i replikeringsuppsättningen.

Steg 1) Anta att du har ServerA, ServerB och ServerC, som måste ingå i din replikuppsättning, och ServerA är definierad som den primära servern i replikuppsättningen.

För att lägga till ServerB och ServerC i replikuppsättningen, kör följande kommandon:

rs.add("ServerB")
rs.add("ServerC")

Replikuppsättning: Konfigurera om eller ta bort med rs.remove()

För att ta bort en server från konfigurationsuppsättningen måste vi använda kommandot "rs.remove".

Steg 1) Stäng först av den instans du vill ta bort. Detta kan göras genom att köra kommandot db.shutdownServer från mongo-skalet.

Steg 2) Anslut till den primära servern.

Steg 3) Använd kommandot rs.remove för att ta bort den önskade servern från replikmängden. Anta att du har en replikmängd med ServerA, ServerB och ServerC, och du vill ta bort ServerC från replikmängden, kör kommandot:

rs.remove("ServerC")

Felsökning av replikuppsättningar

Följande är samma sätt som man kan felsöka när problem uppstår vid användning av replikuppsättningar.

  1. Se till att alla mongo.exe-instanser kan ansluta till varandra. Anta att du har 3 servrar som heter ServerA, ServerB och ServerC. Från ServerA, kör följande 2 kommandon:
    mongo --host ServerB --port 27017
    mongo --host ServerC --port 27017
  2. Kör kommandot rs.status. Detta kommando anger statusen för replikuppsättningen. Som standard skickar varje medlem meddelanden till varandra som kallas "heartbeat"-meddelanden, vilka bara indikerar att servern är aktiv och fungerar. Kommandot "status" hämtar statusen för dessa meddelanden och visar om det finns några problem med några medlemmar i replikuppsättningen.
  3. Kontrollera storleken på Oploggen. Oploggen är en samling i MongoDB som lagrar historien om skriverier som gjordes till MongoDB databas. MongoDB använder sedan denna Oplog för att replikera skrivningarna till de andra medlemmarna i replikuppsättningen. För att kontrollera Oplog, anslut till den nödvändiga medlemsinstansen och kör kommandot rs.printReplicationInfo. Detta kommando visar storleken på loggen och hur länge den kan hålla transaktioner i sin loggfil innan den blir full.

Vanliga frågor

Ja. AI-assistenter kan generera startalternativen för mongod, konfigurationen rs.initiate() och kommandona rs.add() för en replikuppsättning. Granska alltid värdnamn, portar och medlemsprioriteringar innan du tillämpar konfigurationen på produktionsservrar.

Ja. AI-drivna övervakningsverktyg kan läsa rs.status() och Oplog-mätvärden för att flagga sekundärer som hamnar efter primärdiskarna. De kan föreslå orsaker som nätverkslatens eller långsamma diskar, men ingenjörer bör bekräfta innan de agerar.

MongoDB rekommenderar ett udda antal röstberättigade medlemmar, vanligtvis tre, så att val kan nå en majoritet. Om endast två datanoder är överkomliga kan en skiljedomare läggas till för att bryta oavgjort utan att lagra data.

När primärvalet blir oåtkomligt håller de återstående medlemmarna ett val och befordrar automatiskt en berättigad sekundärval till primärvalet. Skrivandet återupptas när ett nytt primärval har valts, hållping applikationen tillgänglig med minimal driftstopp.

Sammanfatta detta inlägg med: