Prehľad replikácie v MongoDB
MongoDB je open-source dokumentovo orientovaná databáza, ktorá je vysoko škálovateľná, je to NoSQL databáza. Môže sa použiť na ukladanie veľkých objemov údajov.
MongoDB ukladá dáta vo formáte JSON, ktorý je veľmi flexibilný a model dokumentu potom mapuje objekty v aplikačných kódoch.
Čo je replikácia MongoDB?
Replikáciou rozumieme zoskupovanie serverov, ktoré vykonávajú rovnakú funkcionalitu. V prípade MongoDB máme servery MongoDB na ukladanie údajov. Účelom replikácie je zabezpečiť vysokú dostupnosť údajov. V prípade, že niektorý zo serverov klesne, mali by sme mať vždy k dispozícii kópiu údajov na inom serveri, aby nebola ovplyvnená dostupnosť.
Údaje by sa mali replikovať pravidelne a v pravidelných intervaloch, aby sa zabezpečilo, že nestratíme žiadne údaje, a aj keď primárny server klesne, druhý server by mal byť schopný vyhovieť požiadavkám používateľov.
Replikácia je tiež veľmi účinná v prípade vyrovnávania záťaže, napríklad, ak máme niekoľko používateľov, ktorí sa snažia čítať alebo zapisovať údaje na servery, v takom prípade by bolo nespravodlivé, keby všetky žiadosti boli odoslané alebo stiahnuté z Na jednom serveri by mal existovať vyrovnávací mechanizmus, ktorý by mal rovnomerne rozdeľovať zaťaženie na dostupné servery v klastri, aby žiadny server nemal nedostatok pamäte alebo šírky pásma a klesal.
Fungovanie replikácie v procese MongoDB
Replikácia v MongoDB sa dosiahne pomocou sady replík. Množiny replík sú zoskupením serverov MongoDB. Existuje primárny server a je zodpovedný za prijímanie všetkých požiadaviek alebo operácií zápisu od klientov a ostatné inštancie, ktoré sa pridajú do sady replík, sa budú nazývať sekundárne inštancie, ktoré budú zodpovedné za všetky operácie čítania.
- Ako je znázornené na vyššie uvedenom diagrame, všetky dáta replikujú primárny uzol na sekundárne uzly, v každej množine replík bude iba jeden primárny uzol.
- Vždy, keď dôjde k zlyhaniu alebo ak je vykonaná nejaká údržba, je zvolený nový primárny uzol.
- Po obnovení zlyhania uzol, ktorý zlyhal, bude teraz fungovať ako sekundárny uzol.
- Klientská aplikácia vždy komunikuje s primárnym uzlom, po ktorom nasleduje replikácia údajov do všetkých sekundárnych uzlov.
Sady, tvorba a operácie replík
Aby sme mohli vytvoriť plnohodnotnú replikáciu serverov MongoDB, musíme najprv vytvoriť množinu replík inštancií MongoDB.
Predstavme si, že máme tri servery, repl1, repl2 a repl3, kde repl1 je primárny server a zvyšné sú sekundárne.
Pridanie replikácie primárneho uzla v MongoDB:
- Uistite sa, že inštancie mongo.exe sú nainštalované na všetkých daných serveroch.
- Všetky mongod.exe musia byť schopné ping navzájom, tj sú schopní komunikovať. Ak chcete skontrolovať to isté, spustite nasledujúce príkazy z primárnych serverov (najskôr), tj v našom prípade repl1.
mongo –host repl2 –port 27017
mongo –host repl3 –port 27017
Podobne môžeme urobiť rovnaký test aj na iných serveroch
- Použitím príkazu mongo –replset by sme mali byť schopní spustiť prvú inštanciu mongod.exe.
mongo –replset „Replica_A“ Kde Replica_A je názov našej sady replík. - Zatiaľ sme do našej sady replík pridali prvý server, ďalším krokom je spustenie sady replík vydaním príkazu rs.initiate ().
- Ďalším krokom je verifikačný krok, pri ktorom zabezpečíme, že všetko, čo sme doteraz nakonfigurovali, je správne, môžeme to urobiť spustením príkazu rs.conf ().
Pridanie replikácie sekundárneho uzla v MongoDB:
Po pridaní primárneho servera je ľahké pridať ďalšie sekundárne uzly, môžeme to urobiť príkazom rs.add ().
Z tohto dôvodu spustite príkaz uvedený nižšie, pretože repl1 je náš primárny server a repl2 a repl3 sú sekundárne servery.
rs.add ( "repl2")
rs.add ( "repl3")
Odstránenie serverov zo sady replík:
Aby bolo možné server odstrániť z ľubovoľnej sady replík, dá sa to urobiť pomocou príkazu rs.remove ().
Do procesu sú zapojené určité kroky, ako je uvedené nižšie:
- Najprv vypnite inštanciu, ktorá sa musí odstrániť. To je možné vykonať spustením príkazu db.shutdownserver cez mongo cell.
- Ďalším krokom je pripojenie k primárnemu serveru.
- Spustite nasledujúci príkaz, povedzme, že máme repl1, repl2 a repl3 ako primárne a sekundárne servery a chceme odstrániť repl3, potom spustíme nasledujúci príkaz:
rs.remove ( "repl3")
Niektoré príkazy na riešenie problémov
- Všetky mongod.exe musia byť schopné ping navzájom, tj sú schopní komunikovať. Ak chcete skontrolovať to isté, spustite nasledujúce príkazy z primárnych serverov (najskôr), tj v našom prípade repl1.
mongo –host repl2 –port 27017
mongo –host repl3 –port 27017
Podobne môžeme urobiť rovnaký test aj na iných serveroch
- Rs.status () udáva stav sady replík
- Na kontrolu oplogu, ktorý je protokolom na zaznamenanie všetkých vykonaných operácií zápisu, zadajte tento príkaz - rs.printReplicationInfo.
Výhody replikácie v MongoDB
Účelom replikácie je zabezpečiť vysokú dostupnosť údajov. V prípade, že niektorý zo serverov klesne, mali by sme mať vždy k dispozícii kópiu údajov dostupných na inom serveri, aby nebola ovplyvnená dostupnosť. Replikácia je tiež veľmi účinná v prípade vyrovnávania záťaže, napríklad ak máme číslo používateľov sa pokúša čítať alebo zapisovať údaje na servery.
Hlavné príbehy replikácie slúžia na krátke príbehy, ktoré slúžia na tento účel:
- Vysoká dostupnosť
- Rozdelenie výkonu
záver:
Ako sme videli, replikácia MongoDB je proces, pri ktorom replikujeme údaje na viac ako jednom serveri, aby sme zabezpečili vysokú dostupnosť. To možno dosiahnuť vytvorením sady replík a pridaním primárneho a sekundárneho servera.
Odporúčané články:
Toto bol návod na replikáciu v MongoDB. Tu diskutujeme o vytvorení, prevádzke, práci, výhodách a niektorých príkazoch na riešenie problémov. Viac informácií nájdete aj v ďalších navrhovaných článkoch -
- Nástroje GUI pre MongoDB
- Príkazy MongoDB
- Alternatívy MongoDB
- Ako nainštalovať MongoDB