MongoDB-replikasarjan opetusohjelma: Vaiheittainen replikointiesimerkki

Sisällysluettelo:

Anonim

Mikä on MongoDB-replikaatio?

Replikoinnilla tarkoitetaan prosessia, jolla varmistetaan, että samat tiedot ovat käytettävissä useammassa kuin yhdessä Mongo DB -palvelimessa. Tätä tarvitaan joskus tietojen saatavuuden parantamiseksi.

Koska jos pää MongoDB-palvelimesi kaatuu jostain syystä, tietoihin ei ole pääsyä. Mutta jos tiedot on replikoitu toiselle palvelimelle säännöllisin väliajoin, voit käyttää tietoja toisesta palvelimesta, vaikka ensisijainen palvelin epäonnistuu.

Toinen replikaation tarkoitus on mahdollisuus kuormituksen tasapainottamiseen. Jos järjestelmään on yhteydessä useita käyttäjiä, sen sijaan että kaikki olisivat yhteydessä yhteen järjestelmään, käyttäjät voidaan yhdistää useisiin palvelimiin siten, että kuormitus jakautuu tasaisesti.

MongoDB: ssä useita MongDB-palvelimia on ryhmitelty sarjoiksi, joita kutsutaan Replica-sarjoiksi. Replikasarjalla on ensisijainen palvelin, joka hyväksyy kaikki kirjoitusoperaatiot asiakkailta. Kaikkia muita joukkoihin tämän jälkeen lisättyjä instansseja kutsutaan toissijaisiksi instansseiksi, joita voidaan käyttää ensisijaisesti kaikkiin lukutoimintoihin.

Tässä opetusohjelmassa opit -

  • Kopiosarja: Ensimmäisen jäsenen lisääminen käyttämällä rs.initiate ()
  • Kopiosarja: Toissijaisen lisääminen käyttämällä rs.add ()
  • Replica Set: Uudelleenkokoonpano tai poistaminen rs.remove () -toiminnon avulla
  • Replikasarjojen vianmääritys

Kopiosarja: Ensimmäisen jäsenen lisääminen käyttämällä rs.initiate ()

Kuten edellisessä osassa mainittiin, replikoinnin mahdollistamiseksi meidän on ensin luotava kopiojoukko MongoDB-esiintymiä.

Oletetaan, että esimerkissämme meillä on 3 palvelinta nimeltä ServerA, ServerB ja ServerC. Tässä kokoonpanossa ServerA on ensisijainen palvelimemme ja ServerB ja ServerC toissijaiset palvelimemme. Alla oleva kuvakaappaus antaa paremman kuvan siitä.

Alla on vaiheet, joita on noudatettava kopiosarjan luomisessa sekä ensimmäisen jäsenen lisääminen sarjaan.

Vaihe 1) Varmista, että kaikki replikasarjaan lisätyt mongod.exe-ilmentymät on asennettu eri palvelimille. Tämän tarkoituksena on varmistaa, että vaikka yksi palvelin menee alas, muut ovat käytettävissä ja siten muita MongoDB-esiintymiä.

Vaihe 2) Varmista, että kaikki mongo.exe-ilmentymät voivat muodostaa yhteyden toisiinsa. Anna ServerA: lta alla olevat kaksi komentoa

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

Samoin tee sama asia muilta palvelimilta.

Vaihe 3) Käynnistä ensimmäinen mongod.exe-ilmentymä replSet-vaihtoehdolla. Tämä vaihtoehto tarjoaa ryhmittelyn kaikille palvelimille, jotka ovat osa tätä kopiosarjaa.

mongo -replSet "Replica1"

Missä "Replica1" on kopiosarjan nimi. Voit valita minkä tahansa merkityksellisen nimen kopiosarjalle.

Vaihe 4) Nyt kun ensimmäinen palvelin on lisätty kopiosarjaan, seuraava vaihe on aloittaa kopiojoukko antamalla seuraava komento rs.initiate ()

Vaihe 5) Tarkista asetettu kopio antamalla komento rs.conf () varmistaaksesi, että kopio on asetettu oikein

Kopiosarja: Toissijaisen lisääminen käyttämällä rs.add ()

Toissijaiset palvelimet voidaan lisätä kopiosarjaan vain käyttämällä rs.add-komentoa. Tämä komento ottaa toissijaisten palvelinten nimen ja lisää palvelimet replikointijoukkoon.

Vaihe 1) Oletetaan, että jos sinulla on ServerA, ServerB ja ServerC, joiden vaaditaan olevan osa kopiojoukkoasi ja ServerA, määritetään replikasarjan ensisijaiseksi palvelimeksi.

ServerB: n ja ServerC: n lisääminen replikaryhmään antaa komennot

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

Replica Set: Uudelleenkokoonpano tai poistaminen rs.remove () -toiminnon avulla

Palvelimen poistamiseksi määritysjoukosta meidän on käytettävä komentoa "rs.remove"

Vaihe 1) Sammuta ensin poistettava ilmentymä. Voidaan tehdä tämä antamalla db.shutdownserver-komento mongo-kuoresta.

Vaihe 2) Yhdistä ensisijaiseen palvelimeen

Vaihe 3) Poista vaadittu palvelin replikasarjasta rs.remove-komennolla. Oletetaan, että jos sinulla on replikasarja ServerA, ServerB ja ServerC, ja haluat poistaa ServerC replikasarjasta, anna komento

rs.remove("ServerC")

Replikasarjojen vianmääritys

Seuraavat vaiheet ovat samoja tapoja, joilla voidaan tehdä vianmääritys, kun kopiosarjojen käytössä on ongelmia.

  1. Varmista, että kaikki mongo.exe-ilmentymät voivat muodostaa yhteyden toisiinsa. Oletetaan, että sinulla on 3 palvelinta nimeltä ServerA, ServerB ja ServerC. Anna palvelimelta A seuraavat 2 komentoa
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
  1. Suorita rs.status-komento. Tämä komento antaa kopiosarjan tilan. Oletuksena kukin jäsen lähettää toisilleen viestejä, joita kutsutaan "syke" -viesteiksi, mikä vain osoittaa, että palvelin on elossa ja toimii. "Status" -komento saa näiden viestien tilan ja näyttää, onko replikasarjassa jäsenillä ongelmia.
  2. Tarkista Oplogin koko - Oplog on kokoelma MongoDB: ssä, joka tallentaa MongoDB-tietokantaan tehtyjen kirjoitusten historian. Sitten MongoDB käyttää tätä Oplogia kopioidakseen kirjoitukset muille replikasarjan jäsenille. Voit tarkistaa Oplog-yhteyden muodostamalla vaaditun jäsenesiintymän ja suorittamalla rs.printReplicationInfo-komennon. Tämä komento näyttää lokin koon ja kuinka kauan se voi pitää tapahtumia lokitiedostossaan ennen kuin se täyttyy.

Yhteenveto:

  • Replikoinnilla tarkoitetaan prosessia, jolla varmistetaan, että samat tiedot ovat käytettävissä useammassa kuin yhdessä Mongo DB -palvelimessa. Monet jäsenet (MongoDB-esiintymät) voidaan lisätä Replica-sarjaan vaatimusten mukaan.