MongoDB Replikointi: Kuinka luoda MongoDB Replikasarja

โšก ร„lykรคs yhteenveto

MongoDB Replikointi sรคilyttรครค identtiset tiedot useammassa kuin yhdessรค MongoDB palvelin, suojaten palvelimen vikaantumiselta ja mahdollistaen kuormituksen tasapainottamisen. Ryhmitelty MongoDB instanssit muodostavat replikajoukon, jossa yksi ensisijainen jรคsen hyvรคksyy kirjoitukset ja toissijaiset jรคsenet kรคsittelevรคt lukutoiminnot ja vikasietoisuuden.

  • ๐Ÿ—„๏ธ Ydinkonsepti: Replikointi kopioi samat tiedot useille palvelimille, jotta tiedot pysyvรคt saatavilla, vaikka ensisijainen palvelin vikaantuisi.
  • ๐Ÿ‘‘ Ensisijainen ja toissijainen: Replikajoukolla on yksi ensisijainen jรคsen, joka hyvรคksyy kirjoituksia, ja toissijaiset jรคsenet, jotka palvelevat lukuja.
  • ๐Ÿš€ Joukon luonti: Komento rs.initiate() kรคynnistรครค replikajoukon sen jรคlkeen, kun ensimmรคinen mongod-instanssi on kรคynnistetty replSet-asetuksella.
  • โž• Jรคsenten lisรครคminen: Komento rs.add() liittรครค toissijaisia โ€‹โ€‹palvelimia, kun taas rs.remove() irrottaa jรคsenen kokoonpanosta.
  • ๐Ÿ”ง Vianmรครคritys: Komentojen rs.status() ja rs.printReplicationInfo() avulla voidaan tarkastella sykkeen tilaa ja Oplog-koon diagnosointia varten.

MongoDB Replikointi: Kuinka luoda MongoDB Replikasarja

Mikรค on MongoDB Replikointi?

Replikoinnilla tarkoitetaan prosessia, jolla varmistetaan, ettรค sama data on saatavilla useammassa kuin yhdessรค MongoDB Palvelin. Tรคtรค tarvitaan joskus datan saatavuuden parantamiseksi.

Koska jos tรคrkein MongoDB Palvelin kaatuu mistรค tahansa syystรค, tietoihin ei pรครคse kรคsiksi. Mutta jos olet replikoinut tiedot toiselle palvelimelle sรครคnnรถllisin vรคliajoin, voit kรคyttรครค tietoja toiselta palvelimelta, vaikka ensisijainen palvelin epรคonnistuu.

Toinen replikoinnin tarkoitus on mahdollisuus kuormituksen tasapainottamiseen. Jos jรคrjestelmรครคn liittyy useita kรคyttรคjiรค, sen sijaan, ettรค kaikki olisivat yhteydessรค yhteen jรคrjestelmรครคn, kรคyttรคjรคt voidaan yhdistรครค useisiin palvelimiin, jotta kuormitus jakautuu tasaisesti.

In MongoDB, useita MongoDB Palvelimet on ryhmitelty joukoiksi, joita kutsutaan replikajoukoiksi. Replikajoukolla on ensisijainen palvelin, joka hyvรคksyy kaikki kirjoitustoiminnot asiakkailta. Kaikkia muita joukkoon tรคmรคn jรคlkeen lisรคttyjรค instansseja kutsutaan toissijaisiksi instansseiksi, joita voidaan kรคyttรครค ensisijaisesti kaikkiin lukutoimintoihin.

Kuinka luoda kopiosarja MongoDB Ensimmรคisen jรคsenen lisรครคminen rs.initiate()

Kuten edellisessรค osiossa mainittiin, replikoinnin mahdollistamiseksi meidรคn on ensin luotava kopiosarja MongoDB tapauksissa.

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

Luo kopiosarja MongoDB

Alla on vaiheet, jotka on noudatettava luotaessa MongoDB replikasarja sekรค ensimmรคisen jรคsenen lisรครคminen joukkoon.

Vaihe 1) Varmista, ettรค kaikki mongod.exe-instanssit on lisรคtty

Varmista, ettรค kaikki replikajoukkoon lisรคttรคvรคt mongod.exe-instanssit on asennettu eri palvelimille. Tรคmรค varmistaa, ettรค vaikka yksi palvelin kaatuisi, muut ovat kรคytettรคvissรค ja siten muut instanssit. MongoDB on saatavilla.

Vaihe 2) Kaikki mongo.exe-instanssit muodostavat yhteyden toisiinsa

Varmista, ettรค kaikki mongo.exe-esiintymรคt voivat muodostaa yhteyden toisiinsa. Anna palvelimelta A:lta seuraavat 2 komentoa.

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

Tee samoin muilta palvelimilta.

Vaihe 3) Kรคynnistรค ensimmรคinen mongod.exe-instanssi

Kรคynnistรค ensimmรคinen mongod.exe-instanssi replSet-asetuksella. Tรคmรค asetus tarjoaa ryhmรคnping kaikille palvelimille, jotka ovat osa tรคtรค replikajoukkoa.

mongo --replSet "Replica1"

Missรค "Replica1" on replikasarjasi nimi. Voit valita replikajoukon nimelle minkรค tahansa merkityksellisen nimen.

Vaihe 4) Ensimmรคinen palvelin lisรคtรครคn replikajoukkoon

Nyt kun ensimmรคinen palvelin on lisรคtty replikajoukkoon, seuraava vaihe on replikajoukon alustaminen antamalla seuraava komento: rs.initiate().

Vaihe 5) Tarkista replikasarja

Tarkista replikajoukko antamalla komento rs.conf() varmistaaksesi, ettรค replikajoukko on mรครคritetty oikein.

Replikasarja: Toissijaisen lisรคyksen rs.add()

Toissijaiset palvelimet voidaan lisรคtรค replikajoukkoon kรคyttรคmรคllรค rs.add-komentoa. Tรคmรค komento ottaa toissijaisten palvelimien nimet ja lisรครค palvelimet replikointijoukkoon.

Vaihe 1) Oletetaan, ettรค sinulla on ServerA, ServerB ja ServerC, joiden on oltava osa replikajoukkoasi, ja ServerA on mรครคritetty replikajoukon ensisijaiseksi palvelimeksi.

Lisรครค ServerB ja ServerC replikajoukkoon antamalla seuraavat komennot:

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

Replica Set: Uudelleenmรครคritys tai poistaminen rs.remove()

Palvelimen poistamiseksi kokoonpanosta meidรคn on kรคytettรคvรค komentoa โ€rs.removeโ€.

Vaihe 1) Suorita ensin poistettavan instanssin sammutus. Voit tehdรค tรคmรคn antamalla db.shutdownServer-komennon mongo-komennosta.

Vaihe 2) Yhdistรค ensisijaiseen palvelimeen.

Vaihe 3) Poista tarvittava palvelin replikajoukosta komennolla rs.remove. Oletetaan, ettรค sinulla on replikajoukko, jossa on ServerA, ServerB ja ServerC, ja haluat poistaa ServerC:n replikajoukosta. Anna komento:

rs.remove("ServerC")

Replikasarjojen vianetsintรค

Seuraavat ovat samoja tapoja, joilla voidaan vianmรครคritystรค, kun replikajoukkojen kรคytรถssรค ilmenee ongelmia.

  1. Varmista, ettรค kaikki mongo.exe-instanssit voivat muodostaa yhteyden toisiinsa. Oletetaan, ettรค sinulla on kolme palvelinta nimeltรค ServerA, ServerB ja ServerC. Suorita ServerA:sta seuraavat kaksi komentoa:
    mongo --host ServerB --port 27017
    mongo --host ServerC --port 27017
  2. Suorita komento rs.status. Tรคmรค komento antaa replikajoukon tilan. Oletusarvoisesti jokainen jรคsen lรคhettรครค toisilleen viestejรค, joita kutsutaan "sykeviesteiksi", jotka osoittavat, ettรค palvelin on toiminnassa. Komento "status" noutaa nรคiden viestien tilan ja nรคyttรครค, onko replikajoukon jรคsenissรค ongelmia.
  3. Tarkista Oplogin koko. Oplog on kokoelma MongoDB joka tallentaa sille tehtyjen kirjoitusten historian MongoDB tietokanta. MongoDB sitten kรคyttรครค tรคtรค Oplogia kopioidakseen kirjoitukset muille replikajoukon jรคsenille. Voit tarkistaa Oplogin muodostamalla yhteyden vaadittuun jรคsenesiintymรครคn ja suorittamalla rs.printReplicationInfo-komento. Tรคmรค komento nรคyttรครค lokin koon ja kuinka kauan se voi sรคilyttรครค tapahtumia lokitiedostossaan ennen kuin se tรคyttyy.

UKK

Kyllรค. Tekoรคlyavustajat voivat luoda mongodin kรคynnistysasetukset, rs.initiate()-mรครคrityksen ja rs.add()-komennot replikajoukolle. Tarkista aina isรคntรคnimet, portit ja jรคsenten prioriteetit ennen mรครคrityksen kรคyttรถรถnottoa tuotantopalvelimilla.

Kyllรค. Tekoรคlypohjaiset valvontatyรถkalut voivat lukea rs.status()- ja Oplog-mittareita merkitรคkseen ensisijaisia โ€‹โ€‹taajuuksia jรคljessรค olevat toissijaiset mittarit. Ne voivat ehdottaa syitรค, kuten verkon viivettรค tai hitaita levyjรค, mutta insinรถรถrien tulisi varmistaa tilanne ennen toimimista.

MongoDB suosittelee pariton mรครคrรค รครคnioikeutettuja jรคseniรค, tyypillisesti kolmea, jotta vaaleissa voidaan saavuttaa enemmistรถ. Jos vain kaksi datasolmua on kohtuuhintaisia, voidaan lisรคtรค vรคlimies tasatilanteiden ratkaisemiseksi ilman datan tallentamista.

Kun esivaaleista tulee tavoittamattomissa, jรคljellรค olevat jรคsenet jรคrjestรคvรคt vaalin ja ylentรคvรคt kelvollisen sivuvaalin automaattisesti esivaaliksi. Kirjoitustoiminnot jatkuvat, kun uudet esivaalit on valittu.ping sovellus kรคytettรคvissรค minimaalisella kรคyttรถkatkoksella.

Tiivistรค tรคmรค viesti seuraavasti: