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.
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.
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.
- 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
- 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.
- 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.


