MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak skonfigurować replikację MariaDB (Master-Slave) w CentOS/RHEL 7 i Debianie 8/9?

Nawet jeśli niektórzy informatycy słyszą wyrażenie „Replikacja bazy danych „, często kojarzą to z potrzebą posiadania wielu kopii tych samych informacji, aby uniknąć utraty danych w przypadku awarii sprzętu lub uszkodzenia danych. Chociaż w pewnym stopniu jest to prawdą, replikacja bazy danych to znacznie więcej niż powszechna koncepcja tworzenia kopii zapasowych bazy danych i dostępności danych.

Wśród innych zalet replikacji bazy danych w konfiguracji master-slave możemy wymienić:

  1. Tworzenie kopii zapasowych można wykonać na serwerze podrzędnym bez wpływu (i bez wpływu) na operacje zapisu w serwerze głównym.
  2. Operacje wymagające dużej ilości zasobów (takie jak analiza danych) mogą być wykonywane na urządzeniu podrzędnym bez wpływu na wydajność urządzenia nadrzędnego.

W tym artykule wyjaśnimy, jak skonfigurować replikację master-slave w MariaDB 10.1 . W przeciwieństwie do klasycznej replikacji, MariaDB wprowadziła koncepcję identyfikatorów transakcji globalnych (identyfikatory GTID ) w v10.0 , który umożliwia zmianę urządzenia podrzędnego w celu łatwego połączenia i replikacji z innego urządzenia nadrzędnego. Ponadto stan urządzenia podrzędnego jest rejestrowany w sposób bezpieczny w przypadku awarii (aktualizacje stanu są wykonywane w tej samej transakcji, co aktualizacje danych).

Jeśli szukasz MySQL replikacja w CentOS/RHEL 6 , postępuj zgodnie z tym przewodnikiem Konfiguracja replikacji MySQL (Master-Slave) na CentOS/RHEL 6

Instalowanie MariaDB 10.1 w CentOS/RHEL 7 i Debianie 8/9

Nasze środowisko testowe składa się z następujących maszyn (oba są CentOS 7) ):

Master:192.168.0.18Slave:192.168.0.19

Aby zainstalować najnowszą wersję MariaDB, będziemy musieli dodać ich repozytoria do naszych serwerów. Jeśli używasz starszej wersji MariaDB, powiedzmy 5.5, rozważ uaktualnienie do najnowszej wersji 10.1, korzystając z poniższego artykułu.

  1. Aktualizuj MariaDB 5.5 do MariaDB 10.1

W CentOS/RHEL

Utwórz plik o nazwie MariaDB.repo wewnątrz /etc/yum.repos.d z następującą zawartością na obu Master i Niewolnik systemy:

# Lista repozytoriów MariaDB 10.1 CentOS - utworzona 2016-01-23 14:16 UTC# http://mariadb.org/mariadb/repositories/[mariadb]name =MariaDBbaseurl =http://yum.mariadb.org/ 10.1/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1

Zapisz plik i zainstaluj MariaDB na obu serwerach za pomocą yum:

# mniam aktualizacja i mniam instalacja serwera MariaDB Klient MariaDB

W Debianie/Ubuntu

Dodaj klucz do uwierzytelniania pakietów i repozytorium MariaDB:

# apt-get install software-properties-common# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db# add-apt-repository 'deb [arch=amd64,i386] http:/ /mirror.edatel.net.co/mariadb/repo/10.1/debian jessie główny'

Uwaga :Zastąp dystrybucję nazwa i kryptonim w powyżej podświetlonej linii.

Zainstaluj za pomocą apt-get polecenie:

# apt-get update# apt-get install mariadb-server

Po zainstalowaniu MariaDB uruchom mysql_secure_installation procedury zarówno na urządzeniu głównym, jak i podrzędnym, skonfigurujmy przykładową testową bazę danych na komputerze głównym.

Konfigurowanie przykładowej bazy danych MySQL na Master

Teraz skonfigurujemy na serwerze głównym Employees baza danych z https://github.com/datacharmer/test_db (co zapewnia zbiór danych składający się z 4 milion rekordów rozłożonych na sześć tabel) w dwóch prostych krokach:

Sklonuj repozytorium i użyj go do zaimportowania przykładowej bazy danych do instalacji MariaDB:

# klon git https://github.com/datacharmer/test_db# cd test_db# mysql  

Konfigurowanie serwera MySQL na Master

Aby skonfigurować urządzenie główne, wykonaj następujące czynności:

KROK 1: Edytuj /etc/my.cnf plik. Pod [mysqld] sekcji, dodaj następujące cztery wiersze:

log-binserver_id=1replicate-do-db=employeesbind-address=192.168.0.18

i uruchom ponownie MariaDB:

# restart systemctl mariadb

KROK 2: Zaloguj się do serwera MariaDB jako root, utwórz użytkownika podrzędnego i przypisz niezbędne uprawnienia:

MariaDB [(brak)]> UTWÓRZ UŻYTKOWNIKA 'slave'@'localhost' ZIDENTYFIKOWANEGO PRZEZ 'SlavePassword';MariaDB [(brak)]> GRANT REPLICATION SLAVE ON *.* DO Slave IDENTYFIKOWANE PRZEZ 'SlavePassword' Z OPCJĄ GRANT;MariaDB [(brak)]> PRZYWILEJE DO PŁUKANIA;MariaDB [(brak)]> STOŁY PODTYNKOWE Z BLOKADĄ ODCZYTU;MariaDB [(brak)]> POKAŻ STATUS MASTER;

Ostatni polecenie (POKAŻ STATUS GŁÓWNY ) zwraca bieżącą pozycję w dzienniku binarnym (dokładne współrzędne, które wskazują dokładnie, od którego punktu urządzenie podrzędne powinno rozpocząć replikację:

KROK 3: Wyjdź z monitu MariaDB (za pomocą exit; ) i użyj następującego polecenia, aby zrobić migawkę bazy danych pracowników. Po naciśnięciu Enter , zostaniesz poproszony o wpisanie hasła roota, które ustawiłeś wcześniej za pomocą mysql_secure_installation :

# mysqldump -u root -p pracownicy> pracownicy-dump.sql

Po zakończeniu zrzutu ponownie połącz się z serwerem bazy danych, aby odblokować tabele, a następnie wyjdź:

MariaDB [(brak)]> ODBLOKUJ TABELE;MariaDB [(brak)]> wyjdź;

KROK 4: Skopiuj zrzut do urządzenia podrzędnego:

# scp workers-dump.sql [email protected]:/root/ 

KROK 5: Uruchom mysql_upgrade procedura aktualizacji tabel systemowych (zostaniesz poproszony o wprowadzenie hasła root MariaDB):

# mysql_upgrade -u root -p

KROK 6: Zezwól usłudze bazy danych przez zaporę sieciową:

# firewall-cmd --add-service=mysql# firewall-cmd --add-service=mysql --permanent# firewall-cmd --reload

Teraz skonfigurujmy urządzenie podrzędne.

Konfigurowanie serwera MySQL na serwerze Slave

Aby skonfigurować urządzenie podrzędne, wykonaj następujące kroki:

KROK 1: Utwórz konto, aby wykonać zadania replikacji. Połącz się z lokalnym serwerem MariaDB za pomocą:

# mysql -u root –p

i wprowadź ustawione wcześniej hasło.

KROK 2: Po połączeniu z serwerem bazy danych utwórz użytkownika i pustą bazę danych oraz przyznaj uprawnienia:

MariaDB [(brak)]> TWÓRZ BAZĘ DANYCH pracowników;MariaDB [(brak)]> PRZYZNAJ WSZYSTKIE PRZYWILEJE pracownikom.* 'slave'@'localhost' Z OPCJĄ PRZYZNANIA;MariaDB [(brak)]> PRZYWILEJE PŁUKANIA;

KROK 3: Zamknij monit MariaDB i załaduj zrzut utworzony na serwerze głównym:

# mysql -u root -p pracownicy  

KROK 4: Edytuj /etc/my.cnf plik do przypisania ID serwera do niewolnika pod [mysqld] Sekcja. Pamiętaj, że musi to być inna liczba całkowita niż 1 , ponieważ użyliśmy 1 w mistrzu:

server_id=2replicate-do-db=pracownicy

Zrestartuj serwer bazy danych:

# restart systemctl mariadb

KROK 5: Uruchom mysql_upgrade procedura aktualizacji tabel systemowych (zostaniesz poproszony o wprowadzenie hasła root MariaDB):

# mysql_upgrade -u root -p

KROK 6: Po zaimportowaniu zrzutu do urządzenia podrzędnego dzieli nas tylko kilka kroków do rozpoczęcia replikacji. Zaloguj się do bazy danych i uruchom następujące polecenia w wierszu MariaDB. Zwróć szczególną uwagę na MASTER_LOG_FILE i MASTER_LOG_POS zmienne, które powinny odpowiadać wartościom zwracanym przez SHOW MASTER STATUS w KROKU 2 „Konfiguracja urządzenia głównego” powyżej.

MariaDB [(brak)]> ZMIEŃ MASTER NA MASTER_HOST='192.168.0.18', MASTER_USER='slave', MASTER_PASSWORD='SlavePassword', MASTER_PORT=3306, MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=314, MASTER_CONNECT_RETRY_G_pos. /pre> 

KROK 7: Uruchom urządzenie podrzędne i sprawdź jego stan bez wychodzenia z monitu MariaDB:

MariaDB [(brak)]> START SLAVE;MariaDB [(brak)]> POKAŻ STATUS SLAVE\G;

Nie, że potrzebujesz tego teraz, ale pamiętaj, że możesz zatrzymać urządzenie podrzędne za pomocą:

MariaDB [(brak)]> ZATRZYMAJ NIEWOLNIKA;

jeśli SHOW SLAVE STATUS\G; polecenie zwraca wszelkie błędy. Użyj tych błędów, aby rozwiązać problem, a następnie uruchom START SLAVE; do ponownego przetestowania.

Przetestuj replikację bazy danych MySQL/MariaDB

Dodajmy rekord do pracowników tabela na serwerze głównym:

MariaDB [(brak)]> WPISZ DO pracowników (nr_pracy, data_urodzenia, imię, nazwisko, płeć, data_zatrudnienia) WARTOŚCI (500000, '1983-07-12', 'Dave', 'Null', 'M', '2014-12-12');

Następnie sprawdź, czy ta zmiana została zreplikowana w urządzeniu podrzędnym:

MariaDB [(brak)]> USE pracowników;MariaDB [(brak)]> WYBIERZ * OD pracowników GDZIE emp_no=500000;

Jak widać, replikacja działa poprawnie od urządzenia nadrzędnego do podrzędnego.

Podsumowanie

W tym artykule wyjaśniliśmy, jak zainstalować najnowszą wersję MariaDB w CentOS/RHEL 7 i Debian 8/9 i omówiliśmy, jak skonfigurować replikację master-slave za pomocą identyfikatorów GTID. Aby uzyskać więcej informacji, zapoznaj się z Przewodnikiem replikacji MariaDB i nie wahaj się skontaktować z nami za pomocą poniższego formularza, jeśli masz pytania lub komentarze.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak chronić bazę danych MySQL lub MariaDB przed wstrzyknięciem SQL:część pierwsza

  2. Jak w bezpieczny sposób przeprowadzać zmiany schematu w MySQL i MariaDB?

  3. Równoważenie obciążenia bazy danych:konfiguracje rozproszone a scentralizowane

  4. Obsługa dużych ilości danych za pomocą MySQL i MariaDB

  5. Jak zaprojektować rozproszony geograficznie klaster MariaDB