Mis on MongoDB replikatsioon?
Replikatsioon on protsess, mille käigus tagatakse, et samad andmed on saadaval rohkem kui ühes Mongo DB serveris. Mõnikord on seda vaja andmete kättesaadavuse suurendamiseks.
Sest kui teie peamine MongoDB-server mingil põhjusel langeb, pole andmetele juurdepääsu. Kuid kui teil on andmeid korrapäraselt teise serverisse kopeeritud, pääsete teisest serverist andmetele juurde ka siis, kui esmane server ebaõnnestub.
Replikatsiooni teine eesmärk on koormuse tasakaalustamise võimalus. Kui süsteemiga ühendab palju kasutajaid, saab selle asemel, et kõik ühendaksid ühte süsteemi, kasutajaid ühendada mitme serveriga, nii et koormus jaotuks võrdselt.
MongoDB-s on mitu MongDB-serverit rühmitatud komplektidesse, mida nimetatakse koopiate komplektideks. Replikakomplektil on peamine server, mis aktsepteerib kogu klientide kirjutamistoimingut. Kõiki teisi pärast seda komplekti lisatud eksemplare nimetatakse sekundaarseteks eksemplarideks, mida saab kasutada peamiselt kõigi lugemisoperatsioonide jaoks.
Selles õpetuses saate teada -
- Replica Set: Esimese liikme lisamine rs.initiate () abil
- Replica Set: Sekundaarse lisamine rs.add () abil
- Replica Set: ümberkonfigureerimine või eemaldamine rs.remove () abil
- Replikakomplektide tõrkeotsing
Replica Set: Esimese liikme lisamine rs.initiate () abil
Nagu eelmises osas mainitud, peame replikatsiooni lubamiseks kõigepealt looma MongoDB eksemplaride koopiate komplekti.
Oletame, et meie näitel on meil 3 serverit nimega ServerA, ServerB ja ServerC. Selles konfiguratsioonis on ServerA meie peamine server ja ServerB ja ServerC meie sekundaarsed serverid. Allpool olev ekraanipilt annab sellest parema ettekujutuse.
Allpool on toodud sammud, mida tuleb järgida koopiakomplekti loomisel koos esimese liikme lisamisega komplekti.
1. samm. Veenduge, et kõik koopiate komplekti lisatavad mongod.exe-eksemplarid on installitud erinevatesse serveritesse. Selle eesmärk on tagada, et isegi kui üks server laguneb, on teised saadaval ja seega ka muud MongoDB eksemplarid.
2. samm. Veenduge, et kõik mongo.exe eksemplarid saaksid üksteisega ühendust luua. Serverist väljastage kaks allpool olevat käsku
mongo -host ServerB -port 27017
mongo -host ServerC -port 27017
Samamoodi tehke sama asi ülejäänud serveritest.
Samm 3) Käivitage esimene mongod.exe eksemplar suvandiga ReplSet. See valik pakub rühmitamise kõigile serveritele, mis on osa sellest koopiakomplektist.
mongo -replSet "Replica1"
Kus "Replica1" on teie koopiate komplekti nimi. Saate oma koopiakomplekti nimeks valida mis tahes sisuka nime.
Samm 4) Nüüd, kui esimene server on replikakomplekti lisatud, on järgmine samm kopeerimiskomplekti algatamine, väljastades järgmise käsu rs.initiate ()
Samm 5) Kontrollige määratud koopia väljastades käsu rs.conf (), et tagada koopia õigesti seadistamine
Replica Set: Sekundaarse lisamine rs.add () abil
Sekundaarservereid saab komplekti lisada ainult käsuga rs.add. See käsk võtab sisse teiseste serverite nime ja lisab serverid replikatsioonikomplekti.
Samm 1) Oletame, et kui teie serverid ServerA, ServerB ja ServerC, mis peavad kuuluma teie koopiakomplekti, ja ServerA, on määratletud koopiakomplekti peamise serverina.
ServerB ja ServerC lisamiseks koopiale väljastage käsud
rs.add("ServerB")rs.add("ServerC")
Replica Set: ümberkonfigureerimine või eemaldamine rs.remove () abil
Serveri eemaldamiseks konfiguratsioonikomplektist peame kasutama käsku "rs.remove"
Samm 1) Esmalt sulgege eksemplar, mille soovite eemaldada. Seda saab teha, väljastades mongo kestast käsu db.shutdownserver.
2. samm. Looge ühendus esmase serveriga
Samm 3) Kasutage käsku rs.remove, et eemaldada vajalik server koopiate komplektist. Oletame, et kui teil on serverikomplekt ServerA, ServerB ja ServerC ning soovite eemaldada serverikoopiate komplektist, väljastage käsk
rs.remove("ServerC")
Replikakomplektide tõrkeotsing
Järgmised toimingud on samad võimalused tõrkeotsinguks, kui replikakomplektide kasutamisel ilmnevad probleemid.
- Veenduge, et kõik mongo.exe eksemplarid saaksid üksteisega ühendust luua. Oletame, et kui teil on 3 serverit nimega ServerA, ServerB ja ServerC. Serveris A väljastage kaks allpool olevat käsku
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Käivitage käsk rs.status. See käsk annab replikakomplekti oleku. Vaikimisi saadab iga liige üksteisele sõnumeid, mida nimetatakse "südamelöögiks", mis lihtsalt näitavad, et server on elus ja töötab. "Status" käsk saab nende sõnumite oleku ja näitab, kas replikakomplektis on mõne liikmega probleeme.
- Kontrollige Oplogi suurust - Oplog on MongoDB-s olev kogu, mis salvestab MongoDB andmebaasi tehtud kirjutiste ajalugu. Seejärel kasutab MongoDB seda Oplogi, et kopeerida kirjutisi teistele koopiakomplekti liikmetele. Oplogi kontrollimiseks looge ühendus vajaliku liikmeeksemplariga ja käivitage käsk rs.printReplicationInfo. See käsk näitab logi suurust ja seda, kui kaua see saab tehinguid oma logifailis hoida, enne kui see täis saab.
Kokkuvõte: