„MongoDB Replica Set Tutorial“: žingsnis po žingsnio replikavimo pavyzdys

Turinys:

Anonim

Kas yra MongoDB replikacija?

Replikacija reiškia procesą, kurio metu užtikrinama, kad tie patys duomenys būtų prieinami daugiau nei viename „Mongo DB“ serveryje. Tai kartais reikalinga siekiant padidinti duomenų prieinamumą.

Nes jei jūsų pagrindinis „MongoDB“ serveris dėl kokių nors priežasčių sugenda, nebus prieigos prie duomenų. Bet jei duomenis reguliariai atkartodavote kitame serveryje, galėsite pasiekti duomenis iš kito serverio, net jei nepavyks pagrindinis serveris.

Kitas replikacijos tikslas yra apkrovos balansavimo galimybė. Jei prie sistemos prisijungia daug vartotojų, vietoj to, kad visi prisijungtų prie vienos sistemos, vartotojai gali būti prijungti prie kelių serverių, kad būtų vienodai paskirstytas krūvis.

Programoje „MongoDB“ keli „MongDB“ serveriai yra sugrupuoti į rinkinius, vadinamus „Replica“ rinkiniais. „Replica“ rinkinyje bus pagrindinis serveris, kuris priims visas klientų rašymo operacijas. Visi kiti egzemplioriai, pridėti prie rinkinio po to, bus vadinami antriniais egzemplioriais, kuriuos pirmiausia galima naudoti visoms skaitymo operacijoms.

Šioje pamokoje sužinosite -

  • Replikos rinkinys: Pirmojo nario pridėjimas naudojant rs.initiate ()
  • Replikos rinkinys: antrinio pridėjimas naudojant rs.add ()
  • Replikos rinkinys: perkonfigūravimas arba pašalinimas naudojant rs.remove ()
  • Replikų rinkinių trikčių šalinimas

Replikos rinkinys: Pirmojo nario pridėjimas naudojant rs.initiate ()

Kaip minėta ankstesniame skyriuje, norėdami įgalinti replikaciją, pirmiausia turime sukurti „MongoDB“ egzempliorių rinkinį.

Tarkime, kad mūsų pavyzdyje yra 3 serveriai, vadinami ServerA, ServerB ir ServerC. Šioje konfigūracijoje „ServerA“ bus mūsų pagrindinis serveris, o „ServerB“ ir „ServerC“ bus mūsų antriniai serveriai. Žemiau pateiktoje ekrano kopijoje bus pateikta geresnė idėja.

Toliau pateikiami veiksmai, kurių reikia laikytis kuriant kopijos rinkinį kartu su pirmuoju nariu.

1 veiksmas) Įsitikinkite, kad visi „mongod.exe“ egzemplioriai, kurie bus pridėti prie replikų rinkinio, būtų įdiegti skirtinguose serveriuose. Taip siekiama užtikrinti, kad net jei vienas serveris neveikia, kiti bus prieinami, taigi ir kiti „MongoDB“ egzemplioriai.

2 žingsnis) Įsitikinkite, kad visi mongo.exe egzemplioriai gali prisijungti vienas prie kito. Iš „ServerA“ išleiskite toliau nurodytas 2 komandas

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

Panašiai darykite tą patį iš likusių serverių.

3 žingsnis. Paleiskite pirmąjį „mongod.exe“ egzempliorių naudodami parinktį „ReplSet“. Ši parinktis suteikia grupavimą visiems serveriams, kurie bus šio replikos rinkinio dalis.

mongo -replSet "Replica1"

Kur „Replica1“ yra jūsų kopijų rinkinio pavadinimas. Savo rinkinio pavadinimui galite pasirinkti bet kokį prasmingą pavadinimą.

4 žingsnis) Dabar, kai pirmasis serveris yra pridėtas prie replikų rinkinio, kitas žingsnis yra inicijuoti replikos rinkinį išleidžiant šią komandą rs.initiate ()

5 žingsnis. Patikrinkite nustatytą kopiją, išleisdami komandą rs.conf (), kad įsitikintumėte, jog kopija nustatyta tinkamai

Replikos rinkinys: antrinio pridėjimas naudojant rs.add ()

Antrinius serverius galima pridėti prie nustatytos kopijos tiesiog naudojant komandą rs.add. Ši komanda perima antrinių serverių vardus ir prideda serverius prie replikacijos rinkinio.

1 žingsnis. Tarkime, jei turite „ServerA“, „ServerB“ ir „ServerC“, kurie turi būti jūsų replikos rinkinio dalis, o „ServerA“ yra apibrėžti kaip pagrindinis serveris replikų rinkinyje.

Norėdami pridėti „ServerB“ ir „ServerC“ prie replikos rinkinio, išleiskite komandas

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

Replikos rinkinys: perkonfigūravimas arba pašalinimas naudojant rs.remove ()

Norėdami pašalinti serverį iš konfigūracijos rinkinio, turime naudoti komandą „rs.remove“

1 žingsnis. Pirmiausia išjunkite egzempliorių, kurį norite pašalinti. Tai galima padaryti iš mongo apvalkalo išleidus komandą db.shutdownserver.

2 žingsnis) Prisijunkite prie pirminio serverio

3 žingsnis. Norėdami pašalinti reikiamą serverį iš kopijų rinkinio, naudokite komandą rs.remove. Tarkime, jei turite rinkinį su „ServerA“, „ServerB“ ir „ServerC“ ir norite pašalinti „ServerC“ iš kopijų rinkinio, išleiskite komandą

rs.remove("ServerC")

Replikų rinkinių trikčių šalinimas

Šie veiksmai yra tie patys būdai, kaip išspręsti problemas, kai kyla problemų naudojant replikų rinkinius.

  1. Įsitikinkite, kad visi mongo.exe egzemplioriai gali prisijungti vienas prie kito. Tarkime, jei turite 3 serverius, vadinamus ServerA, ServerB ir ServerC. Iš A serverio duokite toliau nurodytas 2 komandas
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
  1. Paleiskite komandą rs.status. Ši komanda nurodo replikos rinkinio būseną. Pagal numatytuosius nustatymus kiekvienas narys siųs vienas kitam pranešimus, vadinamus „širdies plakimo“ pranešimais, kurie tik parodo, kad serveris gyvas ir veikia. „Status“ komanda gauna šių pranešimų būseną ir parodo, ar replikų rinkinyje yra kokių nors problemų.
  2. Patikrinkite „Oplog“ dydį - „Oplog“ yra „MongoDB“ kolekcija, kurioje saugoma įrašų, atliktų į „MongoDB“ duomenų bazę, istorija. Tada „MongoDB“ naudoja šį „Oplog“, kad atkartotų įrašus kitiems replikos rinkinio nariams. Norėdami patikrinti „Oplog“, prisijunkite prie reikiamo nario egzemplioriaus ir vykdykite komandą rs.printReplicationInfo. Ši komanda parodys žurnalo dydį ir kiek laiko jis gali laikyti operacijas savo žurnalo faile, kol jis bus pilnas.

Santrauka:

  • Replikacija reiškia procesą, kurio metu užtikrinama, kad tie patys duomenys būtų prieinami daugiau nei viename „Mongo DB“ serveryje. Atsižvelgiant į reikalavimus, į „Replikos“ rinkinį galima įtraukti daug narių („MongoDB“ egzempliorių).