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.


