MongoDB Replikace: Jak vytvořit MongoDB Sada replik

Co je to MongoDB replikace?

Replikace je proces zajišťující dostupnost stejných dat na více než jednom Mongo DB Server. To je někdy vyžadováno za účelem zvýšení dostupnosti dat.

Protože pokud váš hlavní MongoDB Server z jakéhokoli důvodu nefunguje, k datům nebude přístup. Ale pokud jste nechali data replikovat na jiný server v pravidelných intervalech, budete mít přístup k datům z jiného serveru, i když primární server selže.

Dalším účelem replikace je možnost vyvažování zátěže. Pokud se k systému připojuje mnoho uživatelů, namísto toho, aby se všichni připojovali k jednomu systému, mohou být uživatelé připojeni k více serverům, takže zátěž je rovnoměrně rozložena.

In MongoDB, více MongoDB Servery jsou seskupeny do sad nazývaných sady replik. Sada replik bude mít primární server, který bude přijímat všechny operace zápisu od klientů. Všechny ostatní instance přidané do sady poté budou nazývány sekundární instance, které lze primárně použít pro všechny operace čtení.

Jak vytvořit sadu replik MongoDB Přidání prvního člena pomocí rs.initiate()

Jak bylo zmíněno v předchozí části, abychom umožnili replikaci, musíme nejprve vytvořit sadu replik MongoDB příklady.

Předpokládejme, že pro náš příklad máme 3 servery nazvané ServerA, ServerB a ServerC. V této konfiguraci bude ServerA naším primárním serverem a ServerB a ServerC budou našimi sekundárními servery. Níže uvedený snímek obrazovky o tom poskytne lepší představu.

Vytvořit repliku nastavit MongoDB

Níže jsou uvedeny kroky, které je třeba dodržet pro vytvoření MongoDB sada replik spolu s přidáním prvního člena do sady.

Krok 1) Ujistěte se, že byly přidány všechny instance mongod.exe

Ujistěte se, že všechny instance mongod.exe, které budou přidány do sady replik, jsou nainstalovány na různých serverech. To má zajistit, že i když jeden server vypadne, ostatní budou dostupné, a tedy i další instance serveru MongoDB bude k dispozici.

Krok 2) Všechny instance mongo.exe se navzájem propojují

Zajistěte, aby se všechny instance mongo.exe mohly vzájemně propojit. Ze serveru ServerA zadejte níže uvedené 2 příkazy.

mongo –host ServerB –port 27017
mongo –host ServerC –port 27017

Podobně proveďte totéž ze zbývajících serverů.

Krok 3) Spusťte první instanci mongod.exe

Spusťte první instanci mongod.exe s možností replSet. Tato volba poskytuje seskupení pro všechny servery, které budou součástí této sady replik.

mongo –replSet "Replica1"

Kde „Replica1“ je název vaší sady replik. Pro název sady replik si můžete vybrat jakýkoli smysluplný název.

Krok 4) První server je přidán do sady replik

Nyní, když je první server přidán do sady replik, je dalším krokem inicializace sady replik zadáním následujícího příkazu rs.initiate ().

Krok 5) Ověřte sadu replik

Ověřte sadu replik zadáním příkazu rs.conf(), abyste zajistili správné nastavení repliky.

Sada replik: Přidání sekundárního pomocí rs.add()

Sekundární servery lze přidat do sady replik pouhým použitím příkazu rs.add. Tento příkaz převezme název sekundárních serverů a přidá servery do replikační sady.

Krok 1) Předpokládejme, že máte ServerA, ServerB a ServerC, které musí být součástí vaší sady replik, a ServerA je definován jako primární server v sadě replik.

Chcete-li přidat ServerB a ServerC do sady replik, zadejte příkazy

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

Sada replik: Překonfigurování nebo odstranění pomocí rs.remove()

Chcete-li odebrat server z konfigurační sady, musíme použít příkaz „rs.remove“.

Krok 1) Nejprve proveďte vypnutí instance, kterou chcete odebrat. To lze provést zadáním příkazu db.shutdownserver z mongo shellu.

Krok 2) Připojte se k primárnímu serveru

Krok 3) Pomocí příkazu rs.remove odeberte požadovaný server ze sady replik. Předpokládejme tedy, že pokud máte sadu replik s ServerA, ServerB a ServerC a chcete odebrat ServerC ze sady replik, zadejte příkaz

rs.remove("ServerC")

Odstraňování problémů se sadami replik

Následující kroky jsou stejnými způsoby, jak lze řešit problémy, když se vyskytnou problémy s používáním sad replik.

  1. Zajistěte, aby se všechny instance mongo.exe mohly vzájemně propojit. Předpokládejme, že máte 3 servery s názvem ServerA, ServerB a ServerC. Ze serveru A zadejte níže uvedené 2 příkazy
mongo –host ServerB –port 27017
mongo –host ServerC –port 27017
  1. Spusťte příkaz rs.status. Tento příkaz udává stav sady replik. Ve výchozím nastavení si každý člen bude posílat zprávy nazvané „heartbeat“ zprávy, které pouze indikují, že server je naživu a funguje. Příkaz „stav“ zjišťuje stav těchto zpráv a ukazuje, zda existují nějaké problémy s některými členy v sadě replik.
  2. Zkontrolujte velikost Oplogu – Oplog je sbírka MongoDB který ukládá historii zápisů, které byly provedeny do MongoDB databáze. MongoDB pak použije tento Oplog k replikaci zápisů na ostatní členy v sadě replik. Chcete-li zkontrolovat Oplog, připojte se k požadované instanci člena a spusťte příkaz rs.printReplicationInfo. Tento příkaz zobrazí velikost protokolu a jak dlouho může uchovávat transakce v jeho souboru protokolu, než se zaplní.

Shrnutí

Replikace v MongoDB se odkazuje na proces zajištění dostupnosti stejných dat na více než jednom Mongo DB Server. Mnoho členů (MongoDB instance) lze přidat do sady Replica v závislosti na požadavcích.