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.