MongoDB Replikacja: jak tworzyć MongoDB Zestaw replik

Co to jest MongoDB Replikacja?

Replikacja odnosi się do procesu zapewniającego dostępność tych samych danych na więcej niż jednym serwerze Mongo DB. Jest to czasami wymagane w celu zwiększenia dostępności danych.

Ponieważ jeśli jesteś głównym MongoDB Serwer z jakiegoś powodu przestaje działać, nie będzie dostępu do danych. Jeśli jednak dane były regularnie replikowane na inny serwer, dostęp do danych z innego serwera będzie można uzyskać nawet w przypadku awarii serwera głównego.

Kolejnym celem replikacji jest możliwość równoważenia obciążenia. Jeśli do systemu łączy się wielu użytkowników, zamiast łączyć wszystkich z jednym systemem, można ich połączyć z wieloma serwerami, aby zapewnić równy rozkład obciążenia.

In MongoDB, wielokrotność MongoDB Serwery są grupowane w zestawy zwane zestawami replik. Zestaw replik będzie miał serwer podstawowy, który będzie akceptował wszystkie operacje zapisu od klientów. Wszystkie inne instancje dodane do zestawu po tym będą nazywane instancjami drugorzędnymi, które mogą być używane głównie do wszystkich operacji odczytu.

Jak utworzyć zestaw repliki MongoDB Dodawanie pierwszego członka za pomocą rs.initiate()

Jak wspomniano w poprzedniej sekcji, aby umożliwić replikację, musimy najpierw utworzyć zestaw replik MongoDB instancje.

Załóżmy, że w naszym przykładzie mamy 3 serwery o nazwach SerwerA, SerwerB i SerwerC. W tej konfiguracji SerwerA będzie naszym serwerem głównym, a SerwerB i SerwerC będą naszymi serwerami pomocniczymi. Poniższy zrzut ekranu da lepszy pogląd na to.

Utwórz replikę MongoDB

Poniżej znajdują się kroki, które należy wykonać, aby utworzyć plik MongoDB repliki zestawu wraz z dodaniem pierwszego elementu do zestawu.

Krok 1) Upewnij się, że dodano wszystkie instancje mongod.exe

Upewnij się, że wszystkie instancje mongod.exe, które zostaną dodane do zestawu replik, są zainstalowane na różnych serwerach. Ma to na celu zapewnienie, że nawet w przypadku awarii jednego serwera pozostałe będą dostępne, a tym samym inne instancje MongoDB będzie dostępny.

Krok 2) Wszystkie instancje mongo.exe łączą się ze sobą

Upewnij się, że wszystkie instancje mongo.exe mogą się ze sobą łączyć. Na serwerze A wydaj poniższe 2 polecenia.

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

Podobnie zrób to samo z pozostałymi serwerami.

Krok 3) Uruchom pierwszą instancję mongod.exe

Uruchom pierwszą instancję mongod.exe z opcją replSet. Ta opcja zapewnia grupowanie wszystkich serwerów, które będą częścią tego zestawu replik.

mongo –replSet "Replica1"

Gdzie „Replica1” to nazwa zestawu replik. Możesz wybrać dowolną znaczącą nazwę dla nazwy zestawu replik.

Krok 4) Do zestawu replik dodawany jest pierwszy serwer

Teraz, gdy pierwszy serwer został dodany do zestawu replik, następnym krokiem jest zainicjowanie zestawu replik poprzez wydanie następującego polecenia rs.initiate().

Krok 5) Sprawdź zestaw replik

Sprawdź zestaw replik, wydając polecenie rs.conf(), aby upewnić się, że replika jest prawidłowo skonfigurowana.

Zestaw replik: dodawanie dodatkowego za pomocą rs.add()

Serwery dodatkowe można dodać do zestawu replik za pomocą komendy rs.add. To polecenie pobiera nazwę serwerów pomocniczych i dodaje serwery do zestawu replikacji.

Krok 1) Załóżmy, że masz Serwer A, Serwer B i Serwer C, które muszą stanowić część zestawu replik, a Serwer A jest zdefiniowany jako serwer główny w zestawie replik.

Aby dodać SerwerB i SerwerC do zestawu replik, wydaj polecenia

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

Zestaw replik: ponowna konfiguracja lub usuwanie za pomocą funkcji rs.remove()

Aby usunąć serwer z zestawu konfiguracyjnego należy użyć komendy „rs.remove”.

Krok 1) Najpierw wykonaj zamknięcie instancji, którą chcesz usunąć. Można to zrobić, wydając polecenie db.shutdownserver z powłoki mongo.

Krok 2) Połącz się z serwerem głównym

Krok 3) Użyj polecenia rs.remove, aby usunąć wymagany serwer z zestawu replik. Załóżmy więc, że masz zestaw replik składający się z Serwera A, Serwera B i Serwera C i chcesz usunąć SerwerC z zestawu replik, wydaj polecenie

rs.remove("ServerC")

Rozwiązywanie problemów z zestawami replik

Poniższe kroki stanowią te same sposoby rozwiązywania problemów, jakie można napotkać w przypadku wystąpienia problemów z wykorzystaniem zestawów replik.

  1. Upewnij się, że wszystkie instancje mongo.exe mogą się ze sobą łączyć. Załóżmy, że masz 3 serwery o nazwach SerwerA, SerwerB i SerwerC. Na serwerze A wydaj poniższe 2 polecenia
mongo –host ServerB –port 27017
mongo –host ServerC –port 27017
  1. Uruchom komendę rs.status. To polecenie podaje status zestawu replik. Domyślnie każdy członek będzie wysyłał sobie nawzajem wiadomości zwane wiadomościami „heartbeat”, które jedynie wskazują, że serwer żyje i działa. Komenda „status” pobiera status tych wiadomości i pokazuje, czy są jakieś problemy z którymkolwiek elementem zestawu replik.
  2. Sprawdź rozmiar Oplogu – Oplog jest kolekcją w MongoDB który przechowuje historię zapisów, które zostały wykonane w pliku MongoDB Baza danych. MongoDB następnie używa tego Oplogu do replikowania zapisów do innych elementów zestawu replik. Aby sprawdzić dziennik operacji, połącz się z wymaganą instancją elementu członkowskiego i uruchom komendę rs.printReplicationInfo. To polecenie pokaże rozmiar dziennika i czas, przez który może on przechowywać transakcje w pliku dziennika, zanim się zapełni.

Podsumowanie

Replikacja w MongoDB odnosi się do procesu zapewniającego dostępność tych samych danych na więcej niż jednym serwerze Mongo DB. Wielu członków (MongoDB instancje) można dodać do zestawu replik w zależności od wymagań.