MongoDB Replikering: Hur man skapar MongoDB Replik Set

Vad är MongoDB Replikering?

Replikering hänvisar till processen för att säkerställa att samma data är tillgänglig på mer än en Mongo DB 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 är grupperade i uppsättningar som kallas replikuppsättningar. Replica-setet kommer att ha en primär server som accepterar all skrivoperation från klienter. Alla andra instanser som läggs till i uppsättningen efter detta kommer att kallas de sekundära instanserna som 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 för vårt exempel har 3 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 kommer att läggas till 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 gruppering 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) Den första servern läggs till i replikuppsättningen

Nu när den första servern läggs till i replikuppsättningen är nästa steg att initiera replikuppsättningen genom att utfärda följande kommando rs.initiate ().

Steg 5) Verifiera replikuppsättningen

Verifiera replikuppsättningen genom att utfärda kommandot rs.conf() för att säkerställa att repliken ä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 om du har ServerA, ServerB och ServerC, som krävs för att vara en del av din replikuppsättning och ServerA, definieras som den primära servern i replikuppsättningen.

Utför kommandona för att lägga till ServerB och ServerC till replikuppsättningen

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) Utför först en avstängning av instansen som du vill ta bort. Man kan göra detta genom att utfärda 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 nödvändiga servern från replikuppsättningen. Så anta att om du har en replikuppsättning med ServerA, ServerB och ServerC och du vill ta bort ServerC från replikuppsättningen, utfärda kommandot

rs.remove("ServerC")

Felsökning av replikuppsättningar

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

  1. Se till att alla mongo.exe-instanser kan ansluta till varandra. Antag om du har 3 servrar som heter ServerA, ServerB och ServerC. Från Server A, utfärda följande 2 kommandon
mongo –host ServerB –port 27017
mongo –host ServerC –port 27017
  1. Kör kommandot rs.status. Detta kommando ger status för replikuppsättningen. Som standard kommer varje medlem att skicka meddelanden till varandra som kallas "heartbeat"-meddelanden som bara indikerar att servern är vid liv och fungerar. Kommandot "status" hämtar status för dessa meddelanden och visar om det finns några problem med några medlemmar i replikuppsättningen.
  2. Kontrollera storleken på Oplog – 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.

Sammanfattning

Replikering in MongoDB hänvisar till processen för att säkerställa att samma data är tillgänglig på mer än en Mongo DB Server. Många medlemmar (MongoDB instanser) kan läggas till i replikuppsättningen beroende på kraven.