Jak skonfigurować replikację Mariadb (mistrzyni) w Centos/Rhel 7 i Debian 8/9

Jak skonfigurować replikację Mariadb (mistrzyni) w Centos/Rhel 7 i Debian 8/9

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

Replikacja Mariadb Master-Slave w Centos/Rhel 7 i Debian 8/9

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

  1. Kopie zapasowe można wykonać na serwerze Slave bez wpływu (i dotknięcia) operacji zapisu w Master.
  2. Operacje wymagające zasobów (takie jak analiza danych) można wykonać na niewolniku bez wpływu na wydajność mistrza.

W tym artykule wyjaśnimy, jak skonfigurować replikację mistrzów Mariadb 10.1. W przeciwieństwie do klasycznej replikacji, Mariadb wprowadził pojęcie Globalne identyfikatory transakcji (GTIDS) W v10.0, co pozwala łatwo zmieniać niewolnika, aby łatwo się połączyć i odtworzyć z innego mistrza. Ponadto stan niewolnika jest rejestrowany w sposób bezpieczny dla awarii (aktualizacje stanu są wykonywane w tej samej transakcji, co aktualizacje danych).

Jeśli szukasz Mysql Replikacja pod Centos/Rhel 6, Postępuj zgodnie z tym przewodnikiem konfiguracji MySQL (Master-Slave) Replikacja na CentoS/RHEL 6

Instalowanie MariaDB 10.1 w Centos/Rhel 7 i Debian 8/9

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

Mistrz: 192.168.0.18 Slave: 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, powiedz 5.5, rozważ aktualizację do najnowszych 10.1 wersja za pomocą poniżej artykułu.

  1. Upgrde Mariadb 5.5 do Mariadb 10.1

W Centos/Rhel

Utwórz plik o nazwie Mariadb.Repo wewnątrz /etc/mniam.repozytorium.D z następującymi treściami na obu Gospodarz I Niewolnik Systemy:

# Mariadb 10.Lista repozytorium 1 Centos-utworzona 2016-01-23 14:16 UTC # http: // mariadb.org/mariadb/repozytoria/[mariadb] nazwa = mariadb baseurl = http: // yum.Mariadb.Org/10.1/centos7-amd64 gpgkey = https: // yum.Mariadb.ORG/RPM-GPG-KEY-MARIADB GPGCheck = 1 

Zapisz plik i zainstaluj mariadb na obu serwerach za pomocą Yum:

# Yum Update && Yum Instaluj Mariadb-server mariadb-client 

W Debian/Ubuntu

Dodaj klucz do uwierzytelnienia pakietów i repozytorium MariaDB:

# apt-get instaluj oprogramowanie-properties-common # apt-key adv--recv-keys-Keyserver Keyserver.Ubuntu.com 0xcbcb082a1bb943db # Add-Aapt-Repository 'Deb [arch = AMD64, i386] http: // luster.Edatel.internet.co/mariadb/repo/10.1/Debian Jessie główny' 

Notatka: Zastąp dystrybucję nazwa I kryptonim w wyżej podświetlonej linii.

Zainstaluj za pomocą apt-get Komenda:

# aktualizacja apt-get # apt-get instaluj mariadb-server 
Sprawdź wersję mariadb na mistrzowskiej serwerach niewolników

Po zainstalowaniu Mariadb, uruchom Mysql_Secure_Instalation Procedura zarówno na Master, jak i Slave, skonfigurujmy przykładową bazę danych w komputerze głównym.

Konfigurowanie przykładowej bazy danych MySQL na Master

Teraz skonfigurujemy na serwerze głównym Pracownicy baza danych z https: // github.com/datacharmer/test_db (który zapewnia zestaw danych 4 milion rekordów rozłożonych na sześciu tabelach) w dwóch prostych krokach:

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

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

Konfigurowanie serwera MySQL na Master

Aby skonfigurować główny, wykonaj następujące kroki:

KROK 1: Edytuj /itp./mój.CNF plik. Pod [Mysqld] Sekcja, dodaj następujące cztery wiersze:

Log-bin Server_id = 1 Replicate-DO-DB = Pracownicy BIND-Address = 192.168.0.18 

i ponownie uruchom Mariadb:

# Systemctl restart mariadb 

KROK 2: Zaloguj się na serwerze Mariadb jako root, utwórz niewolnik użytkownika i przypisz niezbędne dotacje:

Mariadb [(brak)]> Utwórz użytkownika „Slave”@„LocalHost” zidentyfikowane przez „SlavePassword”; Mariadb [(brak)]> Niewolnik replikacji dotacji na *.* Do Slave zidentyfikowanego przez „SlavePassword” z opcją grantu; Mariadb [(brak)]> Przywileje spłukiwane; Mariadb [(brak)]> Stoły spłukające z zamkiem odczytu; Mariadb [(brak)]> Pokaż status główny; 

ostatni Komenda (Pokaż status główny) Zwraca bieżącą pozycję w dzienniku binarnym (dokładne współrzędne, które wskazują dokładnie w tym punkcie, w którym niewolnik powinien zacząć odtwarzać od:

Skonfiguruj Mysql Master do replikacji

KROK 3: Wyjdź z monitu MariaDB (z Wyjście;) i użyj następującego polecenia, aby zrobić migawkę bazy danych pracowników. Kiedy uderzysz Wchodzić, Zostaniesz poproszony o wpisanie hasła do skonfigurowanej wcześniej Mysql_Secure_Instalation:

# Mysqldump -u root -p pracownicy> Pracownicy -Dump.SQL 

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

Mariadb [(brak)]> Odblokuj tabele; Mariadb [(brak)]> Wyjście; 

KROK 4: Skopiuj zrzut do niewolnika:

# SCP pracowników-Dump.sql [e -mail chroniony]:/root/ 

Krok 5: Uruchom mysql_upgrade Procedura w celu zaktualizowania tabel systemowych (zostaniesz poproszony o wprowadzenie hasła Root Mariadb):

# mysql_upgrade -u root -p 

Krok 6: Zezwól na usługę bazy danych za pośrednictwem zapory:

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

Teraz skonfigurujmy niewolnika.

Konfigurowanie serwera MySQL na Slave

Aby skonfigurować niewolnika, wykonaj następujące kroki:

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

# mysql -u root -p 

i wprowadź wcześniej skonfigurowane hasło.

KROK 2: Po podłączeniu z serwerem bazy danych utwórz użytkownika i pustą bazę danych oraz udzielaj uprawnień:

Mariadb [(brak)]> Utwórz pracowników bazy danych; Mariadb [(brak)]> Przyznać wszystkie przywileje na pracowników.* Do „Slave”@„LocalHost” z opcją grantu; Mariadb [(brak)]> Przywileje spłukiwane; 

KROK 3: Wyjdź z monitu MariaDB i załaduj zrzut utworzony na serwerze głównym:

# Mysql -u root -p pracownicy < employees-dump.sql 

KROK 4: Edytuj /itp./mój.CNF plik do przypisania serwera ID do niewolnika pod [Mysqld] Sekcja. Zauważ, że musi to być inna liczba całkowita niż 1, Jak używaliśmy 1 W Mistrzu:

server_id = 2 Replice-do-db = pracownicy 

Uruchom ponownie serwer bazy danych:

# Systemctl restart mariadb 

Krok 5: Uruchom mysql_upgrade Procedura w celu zaktualizowania tabel systemowych (zostaniesz poproszony o wprowadzenie hasła Root Mariadb):

# mysql_upgrade -u root -p 

Krok 6: Po zaimportowaniu zrzutu do niewolnika jesteśmy tylko kilka kroków, aby rozpocząć replikację. 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 pasować do wartości zwróconych przez Pokaż status główny w kroku 2 „Konfigurowanie 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 = 10, master_use_gtid = current_pos; 

Krok 7: Rozpocznij niewolnika i sprawdź jego status bez wychodzenia z monitu MARIADB:

Mariadb [(brak)]> Zacznij niewolnik; Mariadb [(brak)]> Pokaż status niewolnika \ g; 

Nie dlatego, że potrzebujesz tego teraz, ale pamiętaj, że możesz zatrzymać niewolnika z:

Mariadb [(brak)]> Zatrzymaj niewolnika; 

Jeśli Pokaż status niewolnika \ g; Polecenie zwraca wszelkie błędy. Użyj tych błędów, aby rozwiązać problem, a następnie uruchom Zacznij niewolnik; Aby ponownie przetestować.

Testuj replikację bazy danych mysql/mariadb

Dodajmy rekord do pracownicy Tabela na serwerze głównym:

Mariadb [(brak)]> Wstaw do pracowników (EMP_NO, Birth_Date, First_name, Last_name, Płeć, Hire_Date) Wartości (500000, „1983-07-12”, „Dave”, „Null”, „M”, „2014-12-12”); 

Następnie sprawdź, czy ta zmiana została powtórzona w niewolniku:

Mariadb [(brak)]> Używać pracowników; Mariadb [(brak)]> Wybierz * od pracowników, w których emp_no = 500000; 
Sprawdź replikację bazy danych MARIADB MySQL

Jak widać, replikacja działa poprawnie od mistrza do niewolnika.

Streszczenie

W tym artykule wyjaśniliśmy, jak zainstalować najnowszą wersję Mariadb w Centos/Rhel 7 i Debian 8/9, i omówił, jak skonfigurować replikację mistrzów z GTIDS. Aby uzyskać więcej informacji, możesz odwołać się do przewodnika replikacji MariaDB i nie wahaj się skontaktować z nami, korzystając z poniższego formularza, jeśli masz pytania lub komentarze.