Jak zainstalować na Ubuntu MariaDB Galera klastra 16.04

Jak zainstalować na Ubuntu MariaDB Galera klastra 16.04

Galera SQLite jest multi-Master klastra dla SQLite. Od MariaDB 10.1, SQLite serwera i serwer Galera SQLite pakietów, które zostały połączone i Galera pakiety i ich zależności instalowane automatycznie podczas instalowania MariaDB. Obecnie, MariaDB Galera Klaster obsługuje tylko silnik składowania InnoDB / xtradb. w MariaDB 10.0 i 5.5, trzeba go pobrać osobno. MariaDB Galera dodaje nadmiarowość danych dla danej witryny. W MariaDB Galera Klastra, wiele serwerów baz danych połączone ze sobą i być zsynchronizowane.

MariaDB Galera zapewnia wiele funkcji, Niektóre z nich są wymienione poniżej:

  1. replikacja synchroniczna.
  2. Automatyczny węzeł łączący.
  3. Aktywny czynne topologii multi-master.
  4. Prawda równolegle replikacji, na poziomie rzędu.
  5. Czytać i pisać skalowalność, Mniejsze opóźnienia klient.
  6. Nieudane węzły, automatyczny spadek z klastra.

W tym samouczku, będziemy wyjaśniać w jaki sposób skonfigurować MariaDB Galera Cluster 10.1 z 3 węzły działające na Ubuntu 16.04 serwer. Będziemy również przetestować replikację bazy danych między wszystkimi węzłami.

Wymagania

  • Trzy węzły Ubuntu 16.04 serwer.
  • Node1 ze statycznym adresem IP 192.168.0.102, Node2 ze statycznym adresem IP 192.168.0.103 i Node3 ze statycznym adresem IP 192.168.0.104 skonfigurowanie na serwerze.
  • użytkownika innego niż root przy konfiguracji przywileje sudo na wszystkich węzłach.

Pierwsze kroki

Pierwszy, trzeba będzie zaktualizować wszystkie węzły z najnowszą wersją. Można aktualizować wszystkie z nich za pomocą następującego polecenia:

sudo apt-get update -y
sudo apt-get upgrade -y

Następny, ponownie uruchomić wszystkie węzły, aby zastosować te zmiany. Następnie, zaloguj się z użytkownikiem sudo i przejść do następnego kroku.

Zainstalować MariaDB Galera

Pakiety MariaDB Server i MariaDB Galera Server łączy w wersji MariaDB 10.1. Domyślnie, SQLite 10.1 nie jest dostępny w domyślnych repozytoriach Ubuntu, więc trzeba będzie dodać repozytorium MariaDB na wszystkich węzłach.

Pierwszy, dodać klucz repozytorium MariaDB pomocą następującego polecenia:

sudo zdolny klucz adv –RECV klucze –keyserver HKP: //keyserver.ubuntu.com: 80 0xF1656F24C74CD1D8

Następny, dodać repozytorium APT i zaktualizować cache za pomocą następującego polecenia:

sudo dodatek apt-repozytorium „DEB [Arch = AMD64 i386 ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial głównym’
sudo apt-get update -y

Po repozytorium jest aktualizowana, zainstalować MariaDB za pomocą następującego polecenia:

sudo apt-get install MariaDB serwer rsync -y

Powyższe polecenie zainstaluje MariaDB z Galera i kilkoma zależnościami. Części pozostają w stanie uśpienia, aż Galera skonfigurowany, jak silnik wtyczek lub pamięci. Po MariaDB jest zainstalowany na wszystkich węzłach, można przystąpić do zabezpieczenia MariaDB.

Domyślnie nie jest zabezpieczona instalację oraz, więc trzeba będzie zabezpieczyć instalację oraz. Można to zrobić, uruchamiając skrypt mysql_secure_installation:

sudo mysql_secure_installation

W tym procesie, konieczne będzie ustawienie hasła roota, Usuń użytkowników anonimowych, nie Zezwalaj na logowanie jako root zdalnie i usunąć testowej bazy danych. Odpowiedz na wszystkie pytania jak pokazano poniżej:

Enter current password for root (enter for none):
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Po MariaDB jest zabezpieczona na wszystkich węzłach, Możesz przejść do następnego kroku.

Konfiguracja klastra na węźle Node1 MariaDB

Pierwszy, przejdź na węźle Node1 i utworzyć plik konfiguracyjny dla Galera. Domyślnie, MariaDB odczytuje konfigurację z katalogu /etc/mysql/conf.d/. Aby to zrobić, Uruchom następujące polecenie:

sudo nano /etc/mysql/conf.d/galera.cnf

Dodaj następujące wiersze:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.102"
wsrep_node_name="Node1"

Zapisz plik, po zakończeniu.

Uwaga: 192.168.0.102 to adres IP węźle Node1

Dodaj Stacja2 na Galera Klastra

Następny, przejdź do Node2 i utworzyć plik konfiguracyjny dla Galera:

sudo nano /etc/mysql/conf.d/galera.cnf

Dodaj następujące wiersze:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.103"
wsrep_node_name="Node2"

Zapisz plik, po zakończeniu.

Uwaga: 192.168.0.103 to adres IP Node2.

Dodaj Node3 na Galera Klastra

Następny, przejdź do Node3 i utworzyć plik konfiguracyjny dla Galera:

sudo nano /etc/mysql/conf.d/galera.cnf

Dodaj następujące wiersze:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.104"
wsrep_node_name="Node3"

Zapisz plik, po zakończeniu.

Uwaga: 192.168.0.104 to adres IP Node3.

Konfigurowanie zapory

Galera klastra posiada cztery porty 3306 dla połączenia klienta MySQL, 4444 dla państwa Snapshot Transferu, 4567 Galera dla ruchu replikacji i klastrów 4568 Transferu przyrostowe państwa. Więc trzeba będzie, aby wszystkie te porty za pomocą zapory UFW. Można to zrobić uruchamiając następującą komendę na wszystkich węzłach:

Pierwszy, włączyć zaporę UFW pomocą następującego polecenia:

sudo ufw po

Następny, zezwolić na wszystkie porty za pomocą następującego polecenia:

sudo ufw pozwalają 3306 / tcp
sudo ufw pozwalają 4444 / tcp
sudo ufw pozwalają 4567 / tcp
sudo ufw pozwalają 4568 / tcp
sudo ufw pozwalają 4567 / UDP

Następnie można sprawdzić stan zapory za pomocą następującego polecenia:

sudo ufw stanu

Gdy zapora UFW jest skonfigurowana na wszystkich węzłach, Możesz przejść do następnego kroku.

Zacznij MariaDB Galera Cluster

Po pomyślnym skonfigurowaniu wszystkich węzłów, przejdź na węźle Node1 i rozpocząć Galera Cluster.

Przed Galera może rozpocząć, należy się upewnić, że usługa zostanie zatrzymana na MariaDB wszystkich węzłów.

Uruchom następujące polecenie na wszystkich węzłach:

sudo systemctl stop mysql

Teraz, rozpocząć Galera klastra na węźle Node1 za pomocą następującego polecenia:

sudo galera_new_cluster

Teraz, sprawdzić, czy klaster działa lub nie za pomocą następującego polecenia:

mysql -u głównego -p -e “pokaż status jak „„wsrep_cluster_size”

Jeśli wszystko jest w porządku, powinien pojawić się następujący komunikat:

+--------------------+-------+
| Nazwa_zmiennej | Wartość |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

Na Node2, uruchomić usługę MariaDB:

sudo systemctl start mysql

Można sprawdzić status usługi MariaDB czy to działa, czy nie za pomocą następującego polecenia:

sudo systemctl stan mysql

Jeśli wszystko jest w porządku, powinieneś zobaczyć następujący wynik:

?? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-09-17 10:11:20 EDT; 10min ago
  Process: 715 ExecStartPost = / bin / sh -c systemctl rozbrojony-środowisko _WSREP_START_POSITION (code = Wyprowadzanie, status=0/SUCCESS)
  Process: 713 ExecStartPost = / itp / mysql / debian start (code = Wyprowadzanie, status=0/SUCCESS)
  Process: 545 ExecStartPre = / bin / sh -c [! -e / usr / bin / galera_recovery] && VAR = || VAR = `/ usr / bin / galera_recovery`; [ $? -eq 0 ]   && systemctl set
  Process: 535 ExecStartPre = / bin / sh -c systemctl rozbrojony-środowisko _WSREP_START_POSITION (code = Wyprowadzanie, status=0/SUCCESS)
  Process: 514 ExecStartPre = / usr / bin / install -m 755 -O mysql -g korzeń -d / var / run / mysqld (code = Wyprowadzanie, status=0/SUCCESS)
 Main PID: 661 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (limit: 4915)
   CGroup: /system.slice/mariadb.service
           ??????661 /usr/sbin/mysqld

Sep 17 10: 11: 11 debian Systemd [1]: Uruchamianie serwera bazy danych MariaDB ...
SEP 17 10: 11: 15 debian mysqld [661] 2017-09-17 1011 15 140287134630464 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process
Sep 17 10: 11: 20 debian Systemd [1] Rozpoczęcie serwera bazy MariaDB.

Teraz, Twój drugi węzeł powinien już automatycznie łączone do klastra. Można sprawdzić, czy za pomocą następującego polecenia:

mysql -u głównego -p -e “pokaż status jak „„wsrep_cluster_size”

Jeśli wszystko działa dobrze, rozmiar klastra powinien być ustawiony na dwie części:

+--------------------+-------+
| Nazwa_zmiennej | Wartość |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

Na Node3, uruchomić usługę MariaDB:

sudo systemctl start mysql
mysql -u głównego -p -e “pokaż status jak „„wsrep_cluster_size”

Jeśli wszystko działa dobrze, rozmiar klastra należy ustawić do trzech:

+--------------------+-------+
| Nazwa_zmiennej | Wartość |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

Ci klastra jest teraz pracę i komunikować się nawzajem.

Test Database replikacji

Teraz, wszystkie węzły są w trybie online, nadszedł czas, aby przetestować replikację bazy poprzek Klaster Galera. Zacznijmy od utworzenia bazy danych na węźle Node1 i sprawdzić, czy jest replikowane na wszystkich węzłach.

Pierwszy, zalogować się do konsoli MariaDB za pomocą następującego polecenia:

MySQL -u root -p

Wprowadź hasło użytkownika root i utworzyć bazę danych o nazwie test_db:

SQLite [(brak)]> tworzyć test_db bazy danych;
SQLite [(brak)]> Pokaż baz danych;

+--------------------+
| Baza danych |
+--------------------+
| test_db            |
+--------------------+

Teraz przejdź do Node2 i Node3, następnie sprawdzić replikacji działa lub nie:

MySQL -u root -p
SQLite [(brak)]> Pokaż baz danych;

+--------------------+
| Baza danych |
+--------------------+
| test_db            |
+--------------------+

Gratulacje! Po pomyślnym zainstalowaniu i skonfigurowaniu MariaDB Galera Klastra na Ubuntu 16.04 serwer.

Wniosek

Mam nadzieję, że masz wystarczającą wiedzę, by teraz zainstalować i skonfigurować MariaDB Galera Klastra na Ubuntu 16.04. Teraz można łatwo skalować się do kilku, lub nawet dziesiątki, odrębnych węzłów. Jeśli masz jakiekolwiek wątpliwości lub więcej rekordów, następnie skierować odnośnik Galera Cluster Doc

Źródła