Cum se instalează Clusterul MariaDB Galera pe Ubuntu 16.04

Cum se instalează Clusterul MariaDB Galera pe Ubuntu 16.04

MariaDB Galera este un cluster multi-master pentru MariaDB. Din moment ce MariaDB 10.1, pachetele Server MariaDB și MariaDB Galera Server au fost combinate, pachetele Galera și dependențele lor se instalează automat la instalarea lui MariaDB. În prezent, MariaDB Galera Cluster acceptă numai motorul de stocare InnoDB / XtraDB. În MariaDB 10.0 și 5.5, va trebui să o descărcați separat. MariaDB Galera adaugă redundanță pentru baza de date a unui site. În MariaDB Galera Cluster, mai multe servere de baze de date interconectate între ele și păstrate sincronizate.

MariaDB Galera oferă o mulțime de caracteristici, dintre care unele sunt enumerate mai jos:

  1. Replicare sincronă.
  2. Adunarea nodului automat.
  3. Activează-top topologie multi-master.
  4. True replicare paralelă, la nivelul rândului.
  5. Citirea și scrierea scalabilității, Latenții mai mici ale clienților.
  6. Eroare noduri, abandonare automată din cluster.

În acest tutorial, vom explica cum se configurează MariaDB Galera Cluster 10.1 cu nodurile 3 care rulează pe serverul Ubuntu 16.04. Vom încerca, de asemenea, replicarea bazei de date între toate nodurile.

Cerinţe

  • Trei noduri care rulează serverul Ubuntu 16.04.
  • Node1 cu adresa IP statică 192.168.0.102, Node2 cu adresa IP statică 192.168.0.103 și Node3 cu adresa IP statică 192.168.0.104 configurate pe serverul dvs.
  • Utilizator non-root cu privilegii sudo pentru toate nodurile.

Noțiuni de bază

În primul rând, va trebui să actualizați toate nodurile cu cea mai recentă versiune. Puteți să le actualizați cu următoarea comandă:

sudo apt-get actualizare -y
sudo apt-get upgrade -y

Apoi, reporniți toate nodurile pentru a aplica aceste modificări. Apoi, conectați-vă cu utilizatorul sudo și treceți la pasul următor.

Instalați MariaDB Galera

MariaDB Server și MariaDB Galera Server sunt combinate în versiunea MariaDB 10.1. Implicit, MariaDB 10.1 nu este disponibil în arhivele implicite Ubuntu, deci va trebui să adăugați depozitul MariaDB pe toate nodurile.

Mai întâi, adăugați cheia de depozitare MariaDB cu următoarea comandă:

sudo apt-cheie adv -recv-chei -keyserver hkp: //keyserver.ubuntu.com: 80 0xF1656F24C74CD1D8

Apoi, adăugați magazia și actualizați memoria cache APT cu următoarea comandă:

sudo add-apt-repository 'deb [arh = amd64, i386, ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main'
sudo apt-get actualizare -y

Odată ce magazia este actualizată, instalați MariaDB cu următoarea comandă:

sudo apt-get instala mariadb-server rsync -y

Comanda de mai sus va instala MariaDB cu Galera și mai multe dependențe. Părțile Galera rămân latente până la configurare, ca un plugin sau un motor de stocare. Odată ce MariaDB este instalat pe toate nodurile, puteți trece la securizarea lui MariaDB.

Implicit, instalarea lui MariaDB nu este securizată, deci va trebui să vă asigurați instalarea lui MariaDB. Puteți face acest lucru executând scriptul mysql_secure_installation:

sudo mysql_secure_installation

În acest proces, vi se va cere să setați parola de root, să eliminați utilizatorii anonimi, să dezactivați accesul la root de la distanță și să eliminați baza de date de testare. Răspundeți la toate întrebările, după cum se arată mai jos:

Introduceți parola curentă pentru root (introduceți pentru none): Schimbați parola de root? [Y / n] n Eliminați utilizatorii anonimi? [Y / n] Y Nu permiteți autentificarea root la distanță? [Y / n] Y Scoateți baza de date de testare și accesați-o? [Y / n] Y Reîncărcați tabelele de privilegii acum? [Y / n] Y

Odată ce MariaDB este securizat pe toate nodurile, puteți trece la pasul următor.

Configurați clusterul MariaDB pe Node1

Mai întâi, mergeți la Node1 și creați un fișier de configurare pentru Galera. Implicit, MariaDB citește configurația din directorul /etc/mysql/conf.d/. Pentru a face acest lucru, executați următoarea comandă:

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

Adăugați următoarele rânduri:

[mysqld] binlog_format = ROW implicit-storage-engine = innodb innodb_autoinc_lock_mode = 2 bind-address = 0.0.0.0 # Configurarea furnizorului Galera wsrep_on = ON wsrep_provider = / usr / lib / galera / libgalera_smm.so # Configurare cluster Galera wsrep_cluster_name = "galera_cluster" = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Configurarea sincronizării Galera wsrep_sst_method = rsync # Configurația nodului Galera wsrep_node_address = "192.168.0.102" wsrep_node_name = "Node1"

Salvați fișierul când ați terminat.

Notă: 192.168.0.102 este adresa IP a Node1

Adăugați Node2 pe Galera Cluster

Apoi, mergeți la Node2 și creați un fișier de configurare pentru Galera:

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

Adăugați următoarele rânduri:

[mysqld] binlog_format = ROW implicit-storage-engine = innodb innodb_autoinc_lock_mode = 2 bind-address = 0.0.0.0 # Configurarea furnizorului Galera wsrep_on = ON wsrep_provider = / usr / lib / galera / libgalera_smm.so # Configurare cluster Galera wsrep_cluster_name = "galera_cluster" = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Configurarea sincronizării Galera wsrep_sst_method = rsync # Configurația nodului Galera wsrep_node_address = "192.168.0.103" wsrep_node_name = "Node2"

Salvați fișierul când ați terminat.

Notă: 192.168.0.103 este adresa IP a Node2.

Adăugați Node3 pe Galera Cluster

Apoi, mergeți la Node3 și creați un fișier de configurare pentru Galera:

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

Adăugați următoarele rânduri:

[mysqld] binlog_format = ROW implicit-storage-engine = innodb innodb_autoinc_lock_mode = 2 bind-address = 0.0.0.0 # Configurarea furnizorului Galera wsrep_on = ON wsrep_provider = / usr / lib / galera / libgalera_smm.so # Configurare cluster Galera wsrep_cluster_name = "galera_cluster" = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Configurarea sincronizării Galera wsrep_sst_method = rsync # Configurația nodului Galera wsrep_node_address = "192.168.0.104" wsrep_node_name = "Node3"

Salvați fișierul când ați terminat.

Notă: 192.168.0.104 este adresa IP a Node3.

Configurați Firewall

Galera Cluster utilizează patru porturi 3306 pentru conexiunea client MySQL, 4444 pentru Transferul Snapshot de Stat, 4567 pentru traficul de replicare Galera Cluster și 4568 pentru Transferul de Stat Incremental. Deci, va trebui să permiteți toate aceste porturi utilizând paravanul de protecție UFW. Puteți face acest lucru executând următoarea comandă pe toate nodurile:

Mai întâi, activați paravanul de protecție UFW cu următoarea comandă:

sudo ufw enable

Apoi, permiteți tuturor porturilor următoarea comandă:

sudo ufw permite 3306 / tcp
sudo ufw permite 4444 / tcp
sudo ufw permite 4567 / tcp
sudo ufw permite 4568 / tcp
sudo ufw permite 4567 / udp

Apoi, puteți verifica starea paravanului de protecție cu următoarea comandă:

statutul sudo ufw

Odată ce paravanul de protecție UFW este configurat pe toate nodurile, puteți trece la pasul următor.

Începeți MariaDB Galera Cluster

După configurarea cu succes a tuturor nodurilor, mergeți la Node1 și începeți Galera Cluster.

Înainte de a începe Galera, trebuie să vă asigurați că serviciul MariaDB este oprit pe toate nodurile.

Rulați următoarea comandă pe toate nodurile:

sudo systemctl stop mysql

Acum, începeți Clusterul Galera pe Node1 cu următoarea comandă:

sudo galera_new_cluster

Acum, verificați dacă clusterul rulează sau nu cu următoarea comandă:

mysql -u rădăcină -p -e "arată starea ca" wsrep_cluster_size ""

Dacă totul este bine ar trebui să vedeți următoarea ieșire:

+ -------------------- + ------- + | Numele variabilei | Valoare | + -------------------- + ------- + | wsrep_cluster_size | 1 | + -------------------- + ------- +

Pe Node2, porniți serviciul MariaDB:

sudo systemctl start mysql

Puteți verifica starea serviciului MariaDB dacă funcționează sau nu cu următoarea comandă:

sudo systemctl status mysql

Dacă totul este bine, ar trebui să vedeți următoarea ieșire:

?? mariadb.service - server de baze de date MariaDB Încărcat: încărcat (/lib/systemd/system/mariadb.service; activat; prestator furnizor: activat) Activ: activ (alergare) din Sun 2017-09-17 10: 11: 20 EDT; Acum 10min Proces: 715 ExecStartPost = / bin / sh -c systemctl unset-mediu _WSREP_START_POSITION (cod = exited, status = 0 / SUCCESS) Proces: 713 ExecStartPost = / etc / mysql / debian-start / SUCCESS) Proces: 0 ExecStartPre = / bin / sh -c [! -e / usr / bin / galera_recovery] && VAR = || VAR = `/ usr / bin / galera_recovery`; [$? -eq 545] && set de setări proces: 0 ExecStartPre = / bin / sh -c systemctl unset-mediu _WSREP_START_POSITION (cod = ieșit, status = 535 / SUCCESS) Proces: 0 ExecStartPre = / usr / bin / install -m 514 -o mysql) Stare: "Luand cererile dvs. SQL acum ..." Sarcini: 755 (limita: 0) CGroup: /system.slice/mariadb.service ?????? 661 / usr / sbin / mysqld Sep 26 4915: 661: 17 debian systemd [10]: Pornirea serverului de baze de date MariaDB ... Sep 11 11: 1: 17 Debian mysqld [10]: 11-15-661 2017: 09: 17 10 [Note] / usr / sbin / mysqld (mysqld 11-MariaDB-15 + deb140287134630464u10.1.26) ]: Server de baze de date MariaDB.

Acum, al doilea nod ar trebui să fie legat automat de cluster. Puteți verifica acest lucru cu următoarea comandă:

mysql -u rădăcină -p -e "arată starea ca" wsrep_cluster_size ""

Dacă totul funcționează bine, dimensiunea grupului ar trebui să fie setată la două:

+ -------------------- + ------- + | Numele variabilei | Valoare | + -------------------- + ------- + | wsrep_cluster_size | 2 | + -------------------- + ------- +

Pe Node3, porniți serviciul MariaDB:

sudo systemctl start mysql
mysql -u rădăcină -p -e "arată starea ca" wsrep_cluster_size ""

Dacă totul funcționează bine, dimensiunea grupului ar trebui să fie setată la trei:

+ -------------------- + ------- + | Numele variabilei | Valoare | + -------------------- + ------- + | wsrep_cluster_size | 3 | + -------------------- + ------- +

Clusterul lucrează și se comunică reciproc.

Testați replicarea bazei de date

Acum, toate nodurile sunt online, este timpul să testați replicarea bazei de date în Galera Cluster. Să începem prin crearea unei baze de date pe Node1 și să verificăm dacă este replicată pe toate nodurile.

Mai întâi, conectați-vă la consola MariaDb cu următoarea comandă:

mysql -u root -p

Introduceți parola de root și creați o bază de date cu numele test_db:

MariaDB [(none)]> a crea baza de date test_db;
MariaDB [(none)]]> afișarea bazelor de date;

+ -------------------- + | Baza de date | + -------------------- + | test_db | + -------------------- +

Acum mergeți la Node2 și Node3, apoi verificați dacă replicarea funcționează sau nu:

mysql -u root -p
MariaDB [(none)]]> afișarea bazelor de date;

+ -------------------- + | Baza de date | + -------------------- + | test_db | + -------------------- +

Felicitări! ați instalat și ați configurat MariaDB Galera Cluster pe serverul Ubuntu 16.04.

Concluzie

Sper că aveți acum suficiente cunoștințe pentru a instala și configura MariaDB Galera Cluster pe Ubuntu 16.04. Acum puteți să vă sculați ușor până la mai multe sau chiar zeci de noduri distincte. Dacă aveți vreo îndoială sau mai multe interogări, consultați linkul Galera Cluster Doc

Sursă

În legătură cu o postare

Lasa un raspuns

Acest site folosește Akismet pentru a reduce spamul. Aflați cum sunt procesate datele despre comentarii.