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:
- Vysoká dostupnost
- 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 -
- Nástroje GUI pro MongoDB
- Příkazy MongoDB
- MongoDB Alternativy
- Jak nainstalovat MongoDB