Replikacja MariaDB na RHEL 8/ Centos 8

Replikacja MariaDB na RHEL 8/ Centos 8
Katastrofy zdarzają się, a kiedy to zrobią, cenne dane mogą pójść z wiatrem, nigdy więcej do odzyskania, a po odzyskaniu firmy zwykle wydają do milionów dolarów, aby odzyskać go i stracić cenny czas, który można było wydać w innych operacjach. I tutaj pojawia się koncepcja replikacji. Replikacja to po prostu wiele kopii bazy danych. Replikacja zapewnia, że ​​w dowolnym momencie istnieją kopie kopii zapasowych podstawowej bazy danych, aby w przypadku zejścia bazy danych dane nadal można pobrać z baz danych zapasowych, zapewniając redundancję i wysoką dostępność. W tym samouczku dowiesz się, jak skonfigurować replikację MariaDB master-slave w Centos 8.

Konfiguracja laboratoryjna

Węzeł główny - 192.168.43.13
Węzeł niewolniczy - 192.168.43.252

Krok 1: Zainstaluj Mariadb zarówno na serwerach Master i Slave

Na początek musisz zainstalować Mariadb zarówno na Mistrzu, jak i niewolnika. Więc postępuj zgodnie z poniższymi krokami:

Najpierw zaloguj się na serwerze głównym i zaktualizuj pakiety systemowe, jak pokazano:

Aktualizacja $ sudo dnf

Po pomyślnej aktualizacji systemu, teraz kontynuuj i zainstaluj Mariadb

$ sudo dnf instaluj mariadb-server

Gdy instalacja się powiedzie, możesz sprawdzić, czy Mariadb jest zainstalowany przez uruchamianie polecenia:

$ rpm -qa | Grep Mariadb

Aby uzyskać bardziej szczegółowe informacje, wykonaj polecenie:

$ rpm -qi mariadb -server

Teraz rozpocznij usługę Mariadb

$ sudo systemctl start mariadb

Dodatkowo możesz również włączyć usługę rozpoczęcia automatycznego uruchomienia po każdej sesji rozruchowej/ponownej uruchomienia.

$ sudo systemCtl włącza mariadb

Aby sprawdzić, czy silnik bazy danych MariaDB jest uruchomiony, wydaj polecenie:

$ sudo Systemctl Status Mariadb

Doskonały! Mariadb jest uruchomiony, jak się spodziewaliśmy.

W tej chwili Mariadb nie jest zabezpieczony, a żaden użytkownik może zalogować się do silnika bazy danych i mieć dostęp do wszystkich baz danych i wprowadzać zmiany. Oczywiście nie chcemy, aby tak się stało, a zabezpieczenie bazy danych powinno być najwyższym priorytetem. Dlatego musimy zabezpieczyć silnik bazy danych, ustawiając hasło roota. Więc uruchom polecenie poniżej:

$ sudo mysql_secure_instalation

Poniżej znajduje się interaktywny monit, który będzie wymagał ustawienia hasła rootowego dla bazy danych i odpowiedzi na kilka pytań.

Domyślnie Mariadb działa na porcie 3306. Jeśli prowadzisz zaporę ogniową, musisz zezwolić na ten port, aby silnik bazy danych mógł być dostępny dla użytkowników i usług zewnętrznych.

Aby otworzyć port w zaporze ogniowej, uruchom następującą zasadę zapory:

$ sudo firewalld-cmd --add-port = 3306/tcp-Zone = public --Permanent

Aby zastosować zasadę, ponownie załaduj zaporę:

$ sudo firewalld-cmd-rela jest

Z Mariadb pomyślnie zainstalowaną i zabezpieczoną na serwerze głównym, powtórz te same kroki na serwerze Slave.

Krok 2: Skonfiguruj Mariadb na serwerze głównym

Musimy skonfigurować demon mariadb, aby nasz zamierzony serwer główny działał jako serwer w konfiguracji. Więc otwórz plik konfiguracyjny /itp./mój.CNF

$ sudo vim /etc /my.CNF

Dołącz poniższą konfigurację

[Mysqld]
Address Bind = 192.168.43.13
Server-ID = 1
log_bin = mysql-bin
binlog-format = wiersz

Zapisz i wyjdź z pliku konfiguracyjnego. Aby wprowadzić zmiany, uruchom ponownie usługę MariaDB.

$ sudo systemctl restart mariadb-server

Krok 3: Skonfiguruj serwer Slave

Podobnie jak serwer główny, niewolnik musi być skonfigurowany, aby zachowywać się jak jeden. Więc otwórz plik konfiguracyjny jak poprzednio:

$ sudo vim /etc /my.CNF

Dołącz poniższą konfigurację

[Mysqld]
Address Bind = 192.168.43.252
server-id = 2
log_bin = mysql-bin
binlog-format = wiersz

Chętnie dostarczyć inną 'server_id„z serwera głównego, który w tym przypadku wynosi 2. I tak jak serwer główny, 'bind_address„Parametr powinien wskazywać na adres IP niewolnika.

Zapisz i wyjdź z pliku.

Krok 3: Utwórz użytkownika replikacji na serwerze głównym

Aby skonfigurować niewolnika do replikacji, musimy wrócić do węzła głównego i utworzyć użytkownika replikacji. Zaloguj się do silnika bazy danych Mariadb.

$ mysql -u root -p

Najpierw zatrzymaj użytkownika niewolnika.

Mariadb [(brak)]> Zatrzymaj niewolnik;

Utwórz użytkownika replikacji z pokazanymi poleceniami:

Mariadb [(none)]> Replikacja dotacji na *.* Do „Replica_user” @'192.168.43.252 '
Zidentyfikowane przez „p@ssWord123”;
Zapytanie OK, 0 dotkniętych wierszy (0.06 s)
Mariadb [(none)]> Przywileje spłukające;
Zapytanie OK, 0 dotkniętych wierszy (0.04 s)
Mariadb [(brak)]> tabele spłukające z Lock Read Lock;
Zapytanie OK, 0 dotkniętych wierszy (0.02 s)
Mariadb [(none)]> exit;
Zapytanie OK, 0 dotkniętych wierszy (0.02 s)

Następnie sprawdź ten status mistrza, uruchamiając:

Mariadb [(brak)]> Pokaż status główny \ g

Ostrożnie zanotuj wartości nazwy pliku i pozycji. Zostaną one później użyte do skonfigurowania niewolnika do replikacji.

Z powyższego wyjścia przekłada się to na:

Plik: mysql-bin.000001
Pozycja: 1317

Wyjdź z silnika Mariadb i utwórz kopię zapasową serwera głównego, jak pokazano:

$ sudo mysqldump --all -databases -u root -p> masterDatabase.SQL

Zaloguj się z powrotem do Mariadb i odblokuj tabele:

Mariadb [(brak)]> Odblokuj tabele;
Mariadb [(none)]> exit;

Pamiętaj o kopii kopii zapasowej, którą utworzyliśmy dla głównej bazy danych? Jesteśmy gotowi skopiować go na serwer Slave. Więc uruchom polecenie poniżej:

$ SCP MasterDatabase.SQL [email protected]:/root/

Krok 4: Skonfiguruj niewolnika do replikacji

Wróć do węzła niewolnika, zaimportuj plik kopii zapasowej, który skopiowaliśmy z mistrza do silnika Mariadb.

$ mysql -u root -p < masterdatabase.sql

A następnie uruchom ponownie usługę Mariadb

$ systemctl restart mariadb

Teraz zaloguj się do silnika bazy danych Mariadb i skonfiguruj niewolnika w następujący sposób:

Mariadb [(brak)]> Zatrzymaj niewolnik; Mariadb [(brak)]> Zmień Master na master_host = '192.168.43.13 ', master_user =' replica_user '',
Master_password = 'p@ssword123', master_log_file = 'mysql-bin.000001 ' ,
Master_log_pos = 1317;

Pamiętaj o wartościach, które powiedzieliśmy, że powinieneś je zapamiętać i być może zanotować, wyświetlając status serwera głównego? Zostały one ostatecznie zdefiniowane w Master_log_file I Master_log_pos atrybuty jak widać.

Na koniec rozpocznij niewolnika, aby zainicjować niewolnika, aby rozpocząć od Mistrza:

Mariadb [(none)]> start niewolnik;

Następnie sprawdź status niewolnika

Mariadb [(brak)]> Pokaż status niewolnika;

Jeśli konfiguracja została wykonana idealnie, nie powinieneś otrzymywać poniższego wyjścia z żadnych błędów.

Niewolnik jest teraz gotowy do replikacji.

Krok 5: Testowanie replikacji bazy danych

Ostatecznie musimy potwierdzić, czy nasza konfiguracja działa. Zaloguj się więc do instancji Mariadb w głównym i utwórz testową bazę danych, jak pokazano

Mariadb [(brak)]> Utwórz bazę danych replica_db;

Następnie potwierdź utworzenie bazy danych

Mariadb [(brak)]> Pokaż bazy danych;

Wróć do węzła niewolnika i sprawdź, czy istnieje baza danych.

Doskonały! Nasza konfiguracja działa! Wszystkie kolejne bazy danych utworzone w Master zostaną automatycznie powtórzone, a zmiany zsynchronizowane w węźle niewolników. A to doprowadza nas do końca tego przewodnika.