MongoDB Replica Set Tutorial: Steg för steg-replikeringsexempel

Innehållsförteckning:

Anonim

Vad är MongoDB-replikering?

Replikering hänvisas 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 i syfte att öka datatillgängligheten.

För om din huvudsakliga MongoDB-server av någon anledning går ner kommer det inte att finnas någon åtkomst till data. Men om du hade replikerat data 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 kan användare anslutas till flera servrar i stället för att alla ska ansluta till ett system så att det blir lika fördelning av belastningen.

I MongoDB grupperas flera MongDB-servrar i uppsättningar som kallas replikuppsättningar. Replikuppsättningen 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 sekundära instanser som primärt kan användas för alla läsoperationer.

I den här handledningen lär du dig -

  • Replikuppsättning: Lägga till den första medlemmen med rs.initiate ()
  • Replikuppsättning: Lägga till en sekundär med rs.add ()
  • Replikuppsättning: Konfigurera om eller ta bort med rs.remove ()
  • Felsökning av replikuppsättningar

Replikuppsättning: Lägga till den första medlemmen med rs.initiate ()

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

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. Nedanstående skärmdump ger en bättre uppfattning om den.

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

Steg 1) Se till att alla mongod.exe-instanser som läggs 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ängliga.

Steg 2) Se till att alla mongo.exe-instanser kan ansluta till varandra. Från ServerA, utfärda nedanstående 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 med replSet-alternativet. Detta alternativ ger 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) 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 genom att utfärda kommandot rs.conf () för att säkerställa att repliken är korrekt inställd

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

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

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

För att lägga till ServerB och ServerC i replikuppsättningen, kommandona

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 den instans 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å antag 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 att om du har 3 servrar som heter ServerA, ServerB och ServerC. Från Server A, utfärda nedanstående 2 kommandon
mongo -host ServerB -port 27017mongo -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 "hjärtslag" -meddelanden som bara indikerar att servern lever och fungerar. Kommandot "status" får 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 - Oplog är en samling i MongoDB som lagrar skrivhistoriken som gjordes till MongoDB-databasen. 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 önskade medlemsinstansen och kör kommandot rs.printReplicationInfo. Detta kommando visar loggens storlek och hur länge det kan hålla transaktioner i loggfilen innan den blir full.

Sammanfattning:

  • Replikering hänvisas 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.