Co je MongoDB replikace?
Replikace se označuje jako proces zajištění dostupnosti stejných dat na více než jednom serveru Mongo DB. To je někdy nutné z důvodu zvýšení dostupnosti dat.
Protože pokud váš hlavní server MongoDB z jakéhokoli důvodu selže, nebude k datům přístup. Pokud jste ale nechali data v pravidelných intervalech replikovat na jiný server, 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 vyrovnávání zátěže. Pokud se k systému připojuje mnoho uživatelů, místo toho, aby se všichni připojili k jednomu systému, mohou být uživatelé připojeni k více serverům, aby bylo rovnoměrné rozložení zátěže.
V MongoDB je více serverů MongDB seskupeno do sad zvaný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é se budou nazývat sekundární instance, které lze použít primárně pro všechny operace čtení.
V tomto výukovém programu se naučíte -
- Sada replik: Přidání prvního člena pomocí rs.initiate ()
- Sada replik: Přidání sekundárního souboru pomocí rs.add ()
- Sada replik: Překonfigurování nebo odebrání pomocí rs.remove ()
- Odstraňování problémů se sadami replik
Sada replik: Přidání prvního člena pomocí rs.initiate ()
Jak již bylo zmíněno v předchozí části, pro povolení replikace musíme nejprve vytvořit sadu replik instancí MongoDB.
Předpokládejme, že v našem příkladu máme 3 servery zvané ServerA, ServerB a ServerC. V této konfiguraci bude ServerA náš primární server a ServerB a ServerC budou naše sekundární servery. Níže uvedený snímek obrazovky poskytne lepší představu.
Níže jsou kroky, které je třeba dodržet při vytváření sady replik spolu s přidáním prvního člena do sady.
Krok 1) Zajistěte, aby všechny instance mongod.exe, které budou přidány do sady replik, byly nainstalovány na různých serverech. Tím je zajištěno, že i když jeden server selže, ostatní budou k dispozici, a proto budou k dispozici další instance MongoDB.
Krok 2) Zajistěte, aby se všechny instance mongo.exe mohly navzájem propojit. Z ServerA zadejte 2 níže uvedené 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 s možností replSet. Tato možnost 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 můžete vybrat libovolný smysluplný název.
Krok 4) Nyní, když je první server přidán do sady replik, je dalším krokem inicializace sady replik vydáním následujícího příkazu rs.initiate ()
Krok 5) Ověřte sadu replik vydáním příkazu rs.conf (), abyste zajistili správné nastavení repliky
Sada replik: Přidání sekundárního souboru pomocí rs.add ()
Sekundární servery lze přidat do sady replik pomocí příkazu rs.add. Tento příkaz převezme název sekundárních serverů a přidá servery do sady replikace.
Krok 1) Předpokládejme, že pokud 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, vydejte příkazy
rs.add("ServerB")rs.add("ServerC")
Sada replik: Překonfigurování nebo odebrá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. Lze to udělat vydáním příkazu db.shutdownserver z prostředí mongo.
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 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 vyřešit potíže, když dojde k problémům s používáním sad replik.
- Zajistěte, aby se všechny instance mongo.exe mohly navzájem připojit. Předpokládejme, že pokud máte 3 servery zvané ServerA, ServerB a ServerC. Ze serveru A zadejte 2 níže uvedené příkazy
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Spusťte příkaz rs.status. Tento příkaz udává stav sady replik. Ve výchozím nastavení si každý člen bude navzájem posílat zprávy, které se nazývají zprávy prezenčního signálu, což znamená, že server je aktivní a funkční. Příkaz "status" získá stav těchto zpráv a zobrazí, zda existují problémy s některými členy v sadě replik.
- Zkontrolujte velikost Oplogu - Oplog je kolekce v MongoDB, která ukládá historii zápisů, které byly provedeny do databáze MongoDB. 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 dobu, po kterou může uchovávat transakce v souboru protokolu, než se zaplní.
Souhrn: