Přehled replikace v MongoDB

MongoDB je open-source dokumentově orientovaná databáze, která je vysoce škálovatelná, jedná se o databázi NoSQL. Může být použit pro ukládání velkoobjemových dat.

MongoDB ukládá data ve formátu JSON, který je velmi flexibilní, a model dokumentu poté mapuje objekty v aplikačních kódech.

Co je to MongoDB Replication?

Replikací se rozumí clusterování serverů, které vykonávají stejnou funkci. V případě MongoDB máme servery MongoDB pro ukládání dat. Účelem replikace je zajistit vysokou dostupnost dat. V případě, že některý ze serverů klesne, měli bychom mít vždy k dispozici kopii dat na jiném serveru, aby nebyla ovlivněna dostupnost.

Data by měla být replikována pravidelně a v pravidelných intervalech, aby bylo zajištěno, že neztratíme žádná data, ai když primární server klesne, druhý by měl být schopen vyhovět požadavkům uživatelů.

Replikace je také velmi účinná v případě vyvažování zátěže, například pokud máme několik uživatelů, kteří se pokoušejí číst nebo zapisovat data na servery, v tomto případě by bylo nespravedlivé, kdyby všechny požadavky byly odeslány nebo načteny z na jednom serveru by měl existovat vyrovnávací mechanismus, který by měl rovnoměrně distribuovat zátěž na dostupné servery v klastru, aby žádný server nedocházel z paměti nebo šířky pásma a klesal.

Fungování replikace v procesu MongoDB

Replikace v MongoDB je dosaženo pomocí sad replik. Sady replik jsou seskupení serverů MongoDB. Existuje primární server a je zodpovědný za přijímání všech požadavků nebo operací zápisu od klientů a ostatní instance, které budou přidány do sady replik, budou nazývány jako sekundární instance, které budou odpovědné za všechny operace čtení.

  • Jak je znázorněno na výše uvedeném diagramu, všechna data replikují primární uzel na sekundární uzly, v každé sadě replik bude pouze jeden primární uzel.
  • Kdykoli dojde k převzetí služeb při selhání nebo je provedena nějaká údržba, je zvolen nový primární uzel.
  • Jakmile je převzetí služeb při selhání obnoveno, selhal uzel nyní jako sekundární uzel.
  • Klientská aplikace vždy komunikuje s primárním uzlem, po kterém následuje replikace dat do všech sekundárních uzlů.

Sady, tvorba a operace replik

Abychom mohli vytvořit plnohodnotnou replikaci serverů MongoDB, musíme nejprve vytvořit sadu replik instancí MongoDB.

Představme si, že máme tři servery, repl1, repl2 a repl3, kde repl1 je primární server a zbývající jsou sekundární.

Přidání replikace primárního uzlu v MongoDB:

  • Ujistěte se, že instance mongo.exe jsou nainstalovány na všech daných serverech.
  • Všechny mongod.exe musí být schopen ping navzájem, tj. Jsou schopni komunikovat. Chcete-li zkontrolovat totéž, spusťte následující příkazy z primárních serverů (nejprve), tj. V našem případě repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Stejně tak můžeme udělat stejný test i na jiných serverech

  • Pomocí příkazu mongo –replset bychom měli být schopni spustit naši první instanci mongod.exe.
    mongo –replset „Replica_A“ Kde Replica_A je název naší sady replik.
  • Prozatím jsme přidali první server do naší sady replik, dalším krokem je zahájení sady replik zadáním příkazu rs.initiate ().
  • Dalším krokem je ověřovací krok, kdy se ujistíme, že vše, co jsme dosud nakonfigurovali, je správné, můžeme to provést spuštěním příkazu rs.conf ().

Přidání replikace sekundárních uzlů v MongoDB:

Po přidání primárního serveru je snadné přidat další sekundární uzly, můžeme to provést příkazem rs.add ().

Proto spusťte příkaz níže, vzhledem k tomu, že repl1 je náš primární server a repl2 a repl3 jsou sekundární servery.

rs.add („repl2“)

rs.add („repl3“)

Odebrání serverů ze sady replik:

Chcete-li odebrat server z jakékoli sady replik, lze to provést pomocí příkazu rs.remove ().

Do procesu jsou zapojeny určité kroky, jak je uvedeno níže:

  • Nejprve vypněte instanci, která má být odstraněna. To lze provést spuštěním příkazu db.shutdownserver přes mongo cell.
  • Dalším krokem je připojení k primárnímu serveru.
  • Spusťte následující příkaz, řekněme, že máme repl1, repl2 a repl3 jako primární a sekundární servery, a chceme odebrat repl3, pak spustíme následující příkaz:

rs.remove („repl3“)

Některé příkazy pro odstraňování problémů

  • Všechny mongod.exe musí být schopen ping navzájem, tj. Jsou schopni komunikovat. Chcete-li zkontrolovat totéž, spusťte následující příkazy z primárních serverů (nejprve), tj. V našem případě repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Stejně tak můžeme udělat stejný test i na jiných serverech

  • Rs.status () udává stav sady replik
  • Pro kontrolu oplogu, což je protokol pro zaznamenání všech provedených operací zápisu, zadejte tento příkaz - rs.printReplicationInfo.

Výhody replikace v MongoDB

Účelem replikace je zajistit vysokou dostupnost dat. V případě, že některý ze serverů klesne, měli bychom mít vždy k dispozici kopii dat dostupných na jiném serveru, aby nebyla ovlivněna dostupnost. Replikace je také velmi účinná v případě vyrovnávání zátěže, například pokud máme číslo uživatelů se snaží číst nebo zapisovat data na servery.

Tak dlouhé povídky, hlavní výhody replikace slouží níže uvedenému účelu:

  1. Vysoká dostupnost
  2. Vyrovnávání zatížení

Závěr:

Jak jsme viděli, replikace MongoDB je proces, při kterém replikujeme data na více než jednom serveru, abychom zajistili vysokou dostupnost. To lze provést vytvořením sady replik a přidáním primárního a sekundárního serveru.

Doporučené články:

Toto byl průvodce replikací v MongoDB. Zde diskutujeme vytvoření, provoz, práci, výhody a některé příkazy pro řešení problémů. Další informace naleznete také v dalších navrhovaných článcích -

  1. Nástroje GUI pro MongoDB
  2. Příkazy MongoDB
  3. MongoDB Alternativy
  4. Jak nainstalovat MongoDB