Co to jest replikacja MongoDB?
Replikacja odnosi się do procesu zapewniania, że te same dane są dostępne na więcej niż jednym serwerze Mongo DB. Czasami jest to wymagane w celu zwiększenia dostępności danych.
Ponieważ jeśli główny serwer MongoDB ulegnie awarii z jakiegokolwiek powodu, nie będzie dostępu do danych. Ale jeśli dane były replikowane na inny serwer w regularnych odstępach czasu, będziesz mógł uzyskać dostęp do danych z innego serwera, nawet jeśli główny serwer ulegnie awarii.
Kolejnym celem replikacji jest możliwość równoważenia obciążenia. Jeśli z systemem łączy się wielu użytkowników, zamiast łączyć się wszystkich z jednym systemem, użytkownicy mogą być podłączeni do wielu serwerów, aby zapewnić równy rozkład obciążenia.
W MongoDB wiele serwerów MongDB jest pogrupowanych w zestawy zwane zestawami replik. Zestaw replik będzie miał główny serwer, który przyjmie wszystkie operacje zapisu od klientów. Wszystkie inne instancje dodane do zestawu po tym będą nazywane instancjami drugorzędnymi, których można używać przede wszystkim do wszystkich operacji odczytu.
W tym samouczku nauczysz się -
- Zestaw replik: dodawanie pierwszego członka za pomocą rs.initiate ()
- Zestaw replik: dodawanie pomocniczego za pomocą rs.add ()
- Zestaw replik: ponowna konfiguracja lub usuwanie za pomocą rs.remove ()
- Rozwiązywanie problemów z zestawami replik
Zestaw replik: dodawanie pierwszego członka za pomocą rs.initiate ()
Jak wspomniano w poprzedniej sekcji, aby włączyć replikację, najpierw musimy utworzyć zestaw replik instancji MongoDB.
Załóżmy, że w naszym przykładzie mamy 3 serwery o nazwach ServerA, ServerB i ServerC. 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 obraz.
Poniżej znajdują się kroki, które należy wykonać, aby stworzyć zestaw replik wraz z dodaniem pierwszego członka do zestawu.
Krok 1) 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 jeśli jeden serwer ulegnie awarii, pozostałe będą dostępne, a tym samym inne instancje MongoDB będą dostępne.
Krok 2) Upewnij się, że wszystkie instancje mongo.exe mogą się ze sobą łączyć. Z serwera 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 z opcją replSet. Ta opcja umożliwia grupowanie wszystkich serwerów, które będą częścią tego zestawu replik.
mongo -replSet "Replica1"
Gdzie „Replika1” to nazwa zestawu replik. Możesz wybrać dowolną opisową nazwę dla nazwy zestawu replik.
Krok 4) Teraz, gdy pierwszy serwer zostanie dodany do zestawu replik, następnym krokiem jest zainicjowanie zestawu replik przez wydanie następującego polecenia rs.initiate ()
Krok 5) Sprawdź zestaw replik, wydając polecenie rs.conf (), aby upewnić się, że replika została skonfigurowana poprawnie
Zestaw replik: dodawanie pomocniczego za pomocą rs.add ()
Serwery pomocnicze można dodać do zestawu replik za pomocą polecenia rs.add. To polecenie przyjmuje nazwy serwerów pomocniczych i dodaje je do zestawu replikacji.
Krok 1) Załóżmy, że masz serwer A, Serwer B i Serwer C, które muszą być częścią zestawu replik, a Serwer A jest zdefiniowany jako serwer podstawowy w zestawie replik.
Aby dodać ServerB i ServerC do zestawu replik, wydaj komendy
rs.add("ServerB")rs.add("ServerC")
Zestaw replik: ponowna konfiguracja lub usuwanie za pomocą rs.remove ()
Aby usunąć serwer z zestawu konfiguracyjnego, musimy użyć polecenia "rs.remove"
Krok 1) Najpierw zamknij instancję, którą chcesz usunąć. Można to zrobić, wydając komendę 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 z ServerA, ServerB i ServerC i chcesz usunąć ServerC z zestawu replik, wydaj polecenie
rs.remove("ServerC")
Rozwiązywanie problemów z zestawami replik
Poniższe kroki są takie same, jak sposoby rozwiązywania problemów w przypadku napotkania problemów podczas korzystania z zestawów replik.
- Upewnij się, że wszystkie instancje mongo.exe mogą łączyć się ze sobą. Załóżmy, że masz 3 serwery o nazwach SerwerA, SerwerB i SerwerC. Z serwera A wydaj poniższe 2 polecenia
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Uruchom komendę rs.status. To polecenie podaje stan zestawu replik. Domyślnie każdy członek będzie wysyłał do siebie wiadomości zwane „komunikatami pulsu”, które po prostu wskazują, że serwer działa i działa. Polecenie „status” pobiera stan tych komunikatów i pokazuje, czy są jakieś problemy z jakimikolwiek elementami w zestawie replik.
- Sprawdź rozmiar Oplog - Oplog to kolekcja w MongoDB, która przechowuje historię zapisów, które zostały wykonane w bazie danych MongoDB. MongoDB następnie używa tego Oplog do replikowania zapisów do innych elementów członkowskich w zestawie replik. Aby sprawdzić Oplog, połącz się z wymaganą instancją elementu członkowskiego i uruchom komendę rs.printReplicationInfo. To polecenie pokaże rozmiar dziennika i jak długo może przechowywać transakcje w swoim pliku dziennika, zanim zostanie zapełniony.
Podsumowanie: