MongoDB Replikacja: jak tworzyć MongoDB Zestaw replik

⚡ Inteligentne podsumowanie

MongoDB Replikacja przechowuje identyczne dane w więcej niż jednym miejscu MongoDB serwer, chroniący przed awarią serwera i umożliwiający równoważenie obciążenia. Zgrupowane MongoDB instancje tworzą zestaw replik, w którym jedna instancja podstawowa przyjmuje operacje zapisu, a członkowie drugorzędni zajmują się operacjami odczytu i przełączaniem awaryjnym.

  • 🗄️ Koncepcja główna: Replikacja polega na kopiowaniu tych samych danych na kilka serwerów, dzięki czemu informacje pozostają dostępne w przypadku awarii serwera głównego.
  • 👑 Podstawowe i średnie: Zestaw replik składa się z jednego elementu podstawowego, który akceptuje zapisy, oraz elementów drugorzędnych, które obsługują odczyty.
  • 🚀 Tworzenie zestawu: Polecenie rs.initiate() uruchamia zestaw replik po uruchomieniu pierwszej instancji mongod z opcją replSet.
  • Dodawanie członków: Polecenie rs.add() dołącza serwery pomocnicze, natomiast rs.remove() odłącza członka od konfiguracji.
  • 🔧 Rozwiązywanie problemów: Polecenia rs.status() i rs.printReplicationInfo() udostępniają stan pulsu i rozmiar Oplog na potrzeby diagnostyki.

MongoDB Replikacja: jak tworzyć MongoDB Zestaw replik

Czym jest MongoDB Replikacja?

Replikacja to proces mający na celu zapewnienie dostępności tych samych danych na więcej niż jednym urządzeniu. MongoDB Serwer. Czasami jest to 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 zawierał serwer główny, który będzie akceptował wszystkie operacje zapisu od klientów. Wszystkie pozostałe instancje dodane do zestawu po tym zestawie 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 serwerami pomocniczymi. Poniższy zrzut ekranu da lepsze wyobrażenie.

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 wystąpienia mongod.exe

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

Krok 2) Wszystkie wystąpienia 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 grupęping dla 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) Pierwszy serwer zostaje dodany do zestawu replik

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) Zweryfikuj zestaw replik

Sprawdź zestaw replik, wydając polecenie rs.conf(), aby upewnić się, że zestaw replik jest poprawnie skonfigurowany.

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 SerwerA, SerwerB i SerwerC, które muszą być częścią zestawu replik, a SerwerA jest zdefiniowany jako serwer podstawowy w zestawie replik.

Aby dodać serwery ServerB i ServerC do zestawu replik, należy wykonać następujące polecenia:

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

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

Aby usunąć serwer z zestawu konfiguracyjnego, musimy użyć polecenia „rs.remove”.

Krok 1) Najpierw wyłącz instancję, którą chcesz usunąć. Możesz to zrobić, wydając polecenie db.shutdownServer z poziomu powłoki Mongo.

Krok 2) Połącz się z serwerem podstawowym.

Krok 3) Użyj polecenia rs.remove, aby usunąć wymagany serwer z zestawu replik. Załóżmy, że masz zestaw replik z serwerami ServerA, ServerB i ServerC i chcesz usunąć serwer ServerC z zestawu replik, a następnie wydaj polecenie:

rs.remove("ServerC")

Rozwiązywanie problemów z zestawami replik

Poniżej przedstawiono te same sposoby rozwiązywania problemów, które można zastosować, gdy pojawią się problemy przy korzystaniu z zestawów replik.

  1. Upewnij się, że wszystkie instancje mongo.exe mogą się ze sobą połączyć. Załóżmy, że masz 3 serwery o nazwach SerwerA, SerwerB i SerwerC. Z SerweraA wydaj poniższe 2 polecenia:
    mongo --host ServerB --port 27017
    mongo --host ServerC --port 27017
  2. Uruchom polecenie rs.status. To polecenie wyświetla status zestawu replik. Domyślnie każdy członek wysyła do siebie wiadomości zwane „heartbeat messages”, które po prostu informują, że serwer jest aktywny i działa. Polecenie „status” pobiera status tych wiadomości i pokazuje, czy występują jakieś problemy z którymś z członków zestawu replik.
  3. Sprawdź rozmiar Oplogu. Oplog to zbiór 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.

FAQ

Tak. Asystenci AI mogą generować opcje startowe Mongod, konfigurację rs.initiate() i polecenia rs.add() dla zestawu replik. Zawsze sprawdzaj nazwy hostów, porty i priorytety członków przed zastosowaniem konfiguracji na serwerach produkcyjnych.

Tak. Narzędzia monitorujące oparte na sztucznej inteligencji potrafią odczytywać metryki rs.status() i Oplog, aby sygnalizować problemy z serwerami pomocniczymi, które nie nadążają za serwerami podstawowymi. Mogą one sugerować przyczyny, takie jak opóźnienia sieciowe lub wolne dyski, ale inżynierowie powinni to potwierdzić przed podjęciem działań.

MongoDB Zaleca nieparzystą liczbę członków z prawem głosu, zazwyczaj trzech, aby wybory mogły osiągnąć większość. Jeśli dostępne są tylko dwa węzły danych, można dodać arbitra, który rozstrzyga remisy bez konieczności przechowywania danych.

Gdy prawybory staną się nieosiągalne, pozostali członkowie przeprowadzą wybory i automatycznie awansują uprawnionego kandydata do prawyborów. Operacje zapisu zostaną wznowione po wybraniu nowego prawyboru.ping aplikacja dostępna przy minimalnym przestoju.

Podsumuj ten post następująco: