MongoDB Replikace: Jak vytvořit MongoDB Sada replik

⚡ Chytré shrnutí

MongoDB Replikace uchovává identická data na více než jednom MongoDB server, chránící před selháním serveru a umožňující vyvažování zátěže. Seskupené MongoDB Instance tvoří sadu replik s jedním primárním členem, který přijímá zápisy, a sekundárním členem, který zpracovává operace čtení a převzetí služeb při selhání.

  • 🗄️ Základní koncept: Replikace kopíruje stejná data na několik serverů, takže informace zůstanou dostupné i v případě selhání primárního serveru.
  • ???? Primární a sekundární: Sada replik má jednoho primárního členu, který přijímá zápisy, a sekundární členy, kteří obsluhují čtení.
  • ???? Vytvoření sady: Příkaz rs.initiate() spustí sadu replik po spuštění první instance Mongod s volbou replSet.
  • Přidávání členů: Příkaz rs.add() připojuje sekundární servery, zatímco rs.remove() odpojuje člena od konfigurace.
  • 🔧 Řešení problémů: Příkazy rs.status() a rs.printReplicationInfo() zpřístupňují stav prezenčního signálu a velikost oplogu pro diagnostiku.

MongoDB Replikace: Jak vytvořit MongoDB Sada replik

Co je to MongoDB replikace?

Replikace je proces, který zajišťuje, aby stejná data byla dostupná na více než jednom serveru. MongoDB Server. To je někdy nutné 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 replikační sady. 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 po této sadě se budou nazývat 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 v našem příkladu máme 3 servery s názvem ServerA, ServerB a ServerC. V této konfiguraci bude ServerA naším primárním serverem a ServerB a ServerC budou naše sekundární servery. Níže uvedený snímek obrazovky vám 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 jsou 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. Tím se zajistí, že i když jeden server dojde k výpadku, ostatní budou k dispozici, a tedy i další instance. MongoDB bude k dispozici.

Krok 2) Všechny instance mongo.exe se vzájemně 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 volbou replSet. Tato volba poskytuje skupinuping 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, dalším krokem je inicializace sady replik vydáním následujícího příkazu rs.initiate().

Krok 5) Ověření sady replik

Ověřte sadu replik spuštěním příkazu rs.conf(), abyste se ujistili, že je sada replik správně nastavena.

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 do sady replik přidat ServerB a ServerC, zadejte následující příkazy:

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

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

Pro odstranění serveru z konfigurační sady musíme použít příkaz „rs.remove“.

Krok 1) Nejprve proveďte vypnutí instance, kterou chcete odstranit. To lze provést spuštěním příkazu db.shutdownServer ze shellu 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 máte sadu replik se Serverem A, Serverem B a Serverem C a chcete ze sady replik odebrat Server C, zadejte příkaz:

rs.remove("ServerC")

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

Následují stejné způsoby, jakými lze řešit problémy s používáním replikačních sad.

  1. Ujistěte se, že se všechny instance mongo.exe mohou vzájemně propojit. Předpokládejme, že máte 3 servery s názvem ServerA, ServerB a ServerC. Ze ServeruA zadejte následující 2 příkazy:
    mongo --host ServerB --port 27017
    mongo --host ServerC --port 27017
  2. Spusťte příkaz rs.status. Tento příkaz zobrazí stav sady replik. Ve výchozím nastavení si každý člen navzájem odesílá zprávy nazývané „prezenční signál“, které pouze indikují, že server je aktivní a funguje. Příkaz „status“ zjistí stav těchto zpráv a zobrazí, zda se vyskytly nějaké problémy s některými členy v sadě replik.
  3. Zkontrolujte velikost Oplogu. Oplog je kolekce v 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í.

Nejčastější dotazy

Ano. Asistenti s umělou inteligencí mohou generovat spouštěcí možnosti Mongodu, konfiguraci rs.initiate() a příkazy rs.add() pro sadu replik. Před použitím konfigurace na produkčních serverech vždy zkontrolujte názvy hostitelů, porty a priority členů.

Ano. Monitorovací nástroje založené na umělé inteligenci dokáží číst metriky rs.status() a Oplog a označit sekundární servery, které zaostávají za primárním. Mohou naznačit příčiny, jako je latence sítě nebo pomalé disky, ale inženýři by si je měli před jednáním ověřit.

MongoDB doporučuje lichý počet hlasujících členů, obvykle tři, aby volby dosáhly většiny. Pokud jsou k dispozici pouze dva datové uzly, lze přidat arbitra, který rozhodí remízy bez ukládání dat.

Když se primární člen stane nedostupným, zbývající členové uspořádají volby a automaticky povýší způsobilého sekundárního člena na primárního člena. Operace zápisu se obnoví po výběru nového primárního člena.ping aplikace dostupná s minimálními prostoji.

Shrňte tento příspěvek takto: