MongoDB - replikacja

Replikacja to proces synchronizacji danych na wielu serwerach. Replikacja zapewnia nadmiarowość i zwiększa dostępność danych dzięki wielu kopiom danych na różnych serwerach baz danych. Replikacja chroni bazę danych przed utratą pojedynczego serwera. Replikacja umożliwia również odzyskanie sprawności po awarii sprzętu i przerwach w usługach. Dzięki dodatkowym kopiom danych możesz przeznaczyć jedną na odtwarzanie po awarii, raportowanie lub tworzenie kopii zapasowych.

Dlaczego replikacja?

  • Aby Twoje dane były bezpieczne
  • Wysoka (24 * 7) dostępność danych
  • Odzyskiwanie po awarii
  • Brak przestojów na konserwację (np. Tworzenie kopii zapasowych, odbudowywanie indeksów, kompaktowanie)
  • Skalowanie odczytu (dodatkowe kopie do odczytu)
  • Zestaw replik jest przezroczysty dla aplikacji

Jak działa replikacja w MongoDB

MongoDB osiąga replikację przy użyciu zestawu replik. Zestaw replik to grupamongodinstancje obsługujące ten sam zestaw danych. W replice jeden węzeł jest węzłem podstawowym, który odbiera wszystkie operacje zapisu. Wszystkie inne wystąpienia, takie jak pomocnicze, stosują operacje z podstawowego, tak aby miały ten sam zestaw danych. Zestaw replik może mieć tylko jeden węzeł podstawowy.

  • Zestaw replik to grupa dwóch lub więcej węzłów (zwykle wymagane są minimum 3 węzły).

  • W zestawie replik jeden węzeł jest węzłem podstawowym, a pozostałe węzły drugorzędne.

  • Wszystkie dane są replikowane z węzła podstawowego do dodatkowego.

  • W czasie automatycznego przełączania awaryjnego lub konserwacji ustala się wybory dla głównego węzła i wybierany jest nowy główny węzeł.

  • Po przywróceniu węzła, który uległ awarii, ponownie dołącza do zestawu replik i działa jako węzeł dodatkowy.

Przedstawiony jest typowy diagram replikacji MongoDB, w którym aplikacja kliencka zawsze współdziała z węzłem podstawowym, a następnie węzeł podstawowy replikuje dane do węzłów dodatkowych.

Funkcje zestawu replik

  • Klaster N węzłów
  • Każdy węzeł może być podstawowym
  • Wszystkie operacje zapisu przechodzą do podstawowego
  • Automatyczne przełączanie awaryjne
  • Automatyczne odzyskiwanie
  • Konsensus wyborów prawyborów

Skonfiguruj zestaw replik

W tym samouczku przekonwertujemy samodzielną instancję MongoDB na zestaw replik. Aby przekonwertować na zestaw replik, wykonaj następujące czynności -

  • Zamknij już działający serwer MongoDB.

  • Uruchom serwer MongoDB, określając opcję - replSet. Poniżej znajduje się podstawowa składnia --replSet -

mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"

Przykład

mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
  • Uruchomi instancję mongod o nazwie rs0 na porcie 27017.

  • Teraz uruchom wiersz polecenia i połącz się z tą instancją mongod.

  • W kliencie Mongo wydaj polecenie rs.initiate() aby zainicjować nowy zestaw replik.

  • Aby sprawdzić konfigurację zestawu replik, wydaj polecenie rs.conf(). Aby sprawdzić stan zestawu replik, wydaj komendęrs.status().

Dodaj członków do zestawu replik

Aby dodać członków do zestawu replik, uruchom instancje mongod na wielu komputerach. Teraz uruchom klienta mongo i wydaj poleceniers.add().

Składnia

Podstawowa składnia rs.add() polecenie jest następujące -

>rs.add(HOST_NAME:PORT)

Przykład

Załóżmy, że nazwa Twojej instancji mongod to mongod1.net i działa na porcie 27017. Aby dodać tę instancję do zestawu replik, wydaj komendęrs.add() w kliencie Mongo.

>rs.add("mongod1.net:27017")
>

Możesz dodać instancję mongod do zestawu replik tylko wtedy, gdy jesteś podłączony do węzła podstawowego. Aby sprawdzić, czy jesteś podłączony do sieci podstawowej, czy nie, wydaj poleceniedb.isMaster() w kliencie mongo.