Kako instalirati MariaDB Galera Cluster na Ubuntu 16.04

Kako instalirati MariaDB Galera Cluster na Ubuntu 16.04

MariaDB Galera je multi-master klaster za MariaDB. Od MariaDB 10.1, paketi MariaDB Server i MariaDB Galera Server su kombinovani i Galera paketi i njihove zavisnosti automatski se instaliraju prilikom instalacije MariaDB. Trenutno, MariaDB Galera Cluster podržava samo InnoDB / XtraDB memoriju. U MariaDB 10.0 i 5.5, potrebno je da ga preuzmete odvojeno. MariaDB Galera dodaje redundantnost za bazu sajta. U klanici MariaDB Galera, više servera baze podataka se međusobno povezuju i zadržavaju sinhronizaciju.

MariaDB Galera pruža mnoštvo funkcija, neke od njih su navedene u nastavku:

  1. Sinhronska replikacija.
  2. Automatsko povezivanje čvora.
  3. Aktivno aktivna multi-master topologija.
  4. Prava paralelna replikacija, na nivou reda.
  5. Skalabilnost čitanja i pisanja, Manji latencije klijenta.
  6. Neuspeli čvorovi, automatsko pada iz klastera.

U ovom vodiču ćemo objasniti kako postaviti MariaDB Galera Cluster 10.1 sa 3 čvorovima koji rade na Ubuntu 16.04 serveru. Takođe ćemo testirati replikaciju baze podataka između svih čvorova.

zahtjevi

  • Tri čvorova koji koriste Ubuntu 16.04 server.
  • Node1 sa statičkom IP adresom 192.168.0.102, Node2 sa statičkom IP adresom 192.168.0.103 i Node3 sa statičkom IP adresom 192.168.0.104 konfigurirati na vašem serveru.
  • Korisnik koji nije root korisnik sa privilegijama sudo na svim čvorovima.

Počinjemo

Prvo, morate ažurirati sve čvorove sa najnovijom verzijom. Sve ih možete ažurirati slijedećom komandom:

sudo apt-get update -y
sudo apt-get nadogradnja -y

Zatim ponovo pokrenite sve čvorove da biste primenili ove promene. Zatim, prijavite se s korisnikom sudo i pređite na sledeći korak.

Instalirajte MariaDB Galera

MariaDB Server i MariaDB Galera Server paketi su kombinovani u verziji MariaDB 10.1. Po defaultu, MariaDB 10.1 nije dostupan u podrazumevanim Ubuntu repozitorijumima, tako da ćete morati dodati spremište MariaDB na sve čvorove.

Prvo, dodajte taster spremišta MariaDB sa sljedećom komandom:

sudo apt-key adv -recv-keys -keyserver hkp: //keyserver.ubuntu.com: 80 0xF1656F24C74CD1D8

Zatim dodajte spremište i ažurirajte APT keš memoriju pomoću sledeće komande:

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

Kada se spremište ažurira, instalirajte MariaDB sa sledećom komandom:

sudo apt-get instaliraj mariadb-server rsync -y

Gornja komanda će instalirati MariaDB sa Galerom i nekoliko zavisnosti. Delovi Galera ostaju neaktivni dok se ne konfigurišu, kao dodatak ili memorija. Kada se MariaDB instalira na sve čvorove, možete nastaviti da osigurate MariaDB.

Podrazumevana postavka MariaDB nije osigurana, tako da ćete morati osigurati instalaciju MariaDB. To možete uraditi tako što ćete pokrenuti skriptu mysql_secure_installation:

sudo mysql_secure_installation

U ovom procesu od vas će biti zatraženo da podesite root lozinku, uklonite anonimne korisnike, odvojite root login i uklonite test bazu podataka. Odgovorite na sva pitanja kao što je prikazano u nastavku:

Unesite trenutnu lozinku za root (unesite za nijedan): Promenite lozinku root-a? [Y / n] n Ukloni anonimne korisnike? [Y / n] Y Zabranite prijavljivanje root-a na daljinu? [Y / n] Y Uklonite test bazu podataka i pristupite njoj? [Y / n] Y Ponovo pokrenite tabele privilegija? [Y / n] Y

Kada je MariaDB osiguran na svim čvorovima, možete preći na sledeći korak.

Postavite MariaDB klaster na Node1

Prvo idite na Node1 i kreirajte konfiguracionu datoteku za Galera. Po defaultu, MariaDB čita konfiguraciju iz /etc/mysql/conf.d/ direktorijuma. Da biste to učinili, pokrenite sledeću komandu:

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

Dodajte sledeće linije:

[mysqld] binlog_format = ROW default-storage-engine = innodb innodb_autoinc_lock_mode = 2 bind-address = 0.0.0.0 # Konfiguracija Galera provajdera wsrep_on = ON wsrep_provider = / usr / lib / galera / libgalera_smm.so # Konfiguracija klastera Galera wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Konfiguracija za sinhronizaciju Galere wsrep_sst_method = rsync # Konfiguracija node Galera wsrep_node_address = "192.168.0.102" wsrep_node_name = "Node1"

Sačuvajte datoteku kada završite.

Bilješka: 192.168.0.102 je IP adresa Node1-a

Dodajte Node2 na Galera Cluster

Zatim idite na Node2 i kreirajte konfiguracionu datoteku za Galera:

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

Dodajte sledeće linije:

[mysqld] binlog_format = ROW default-storage-engine = innodb innodb_autoinc_lock_mode = 2 bind-address = 0.0.0.0 # Konfiguracija Galera provajdera wsrep_on = ON wsrep_provider = / usr / lib / galera / libgalera_smm.so # Konfiguracija klastera Galera wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Konfiguracija za sinhronizaciju Galere wsrep_sst_method = rsync # Konfiguracija node Galera wsrep_node_address = "192.168.0.103" wsrep_node_name = "Node2"

Sačuvajte datoteku kada završite.

Bilješka: 192.168.0.103 je IP adresa Node2-a.

Dodajte Node3 na Galera Cluster

Zatim idite na Node3 i kreirajte konfiguracionu datoteku za Galera:

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

Dodajte sledeće linije:

[mysqld] binlog_format = ROW default-storage-engine = innodb innodb_autoinc_lock_mode = 2 bind-address = 0.0.0.0 # Konfiguracija Galera provajdera wsrep_on = ON wsrep_provider = / usr / lib / galera / libgalera_smm.so # Konfiguracija klastera Galera wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Konfiguracija za sinhronizaciju Galere wsrep_sst_method = rsync # Konfiguracija node Galera wsrep_node_address = "192.168.0.104" wsrep_node_name = "Node3"

Sačuvajte datoteku kada završite.

Bilješka: 192.168.0.104 je IP adresa Node3-a.

Konfigurišite zaštitni zid

Galera Cluster koristi četiri porta 3306 za MySQL klijentsku vezu, 4444 za prenos podataka snapshot-a, 4567 za promet replikacije Galera Cluster i 4568 za dodatni prenos države. Tako ćete morati dozvoliti sve ove portove koristeći UFW zaštitni zid. To možete uraditi tako što ćete pokrenuti sljedeću naredbu na svim čvorovima:

Prvo, omogućite UFW zaštitnom zidu sledeću komandu:

sudo ufw omogućiti

Zatim, dozvolite svim portovima sledeću komandu:

sudo ufw dozvoli 3306 / tcp
sudo ufw dozvoli 4444 / tcp
sudo ufw dozvoli 4567 / tcp
sudo ufw dozvoli 4568 / tcp
sudo ufw dozvoliti 4567 / udp

Tada možete provjeriti status zaštitnog zida pomoću sljedeće naredbe:

sudo ufw status

Kada je UFW zaštitni zid konfigurisan na svim čvorovima, možete preći na sledeći korak.

Pokrenite MariaDB Galera Cluster

Nakon što uspešno konfigurišete sve čvorove, idite na Node1 i pokrenite Galera Cluster.

Pre nego što Galera počne, morate osigurati da se usluga MariaDB zaustavi na svim čvorovima.

Pokrenite sledeću naredbu na svim čvorovima:

sudo systemctl zaustavi mysql

Sada pokrenite Galera klaster na Node1 sa sledećom komandom:

sudo galera_new_cluster

Sada, proverite da li je klaster pokrenut ili nije sa sledećom komandom:

mysql -u root -p -e "prikaži status kao što je 'wsrep_cluster_size'"

Ako je sve u redu, trebalo bi da vidite sledeći izlaz:

+ -------------------- + ------- + | Variable_name | Vrednost | + -------------------- + ------- + | wsrep_cluster_size | 1 | + -------------------- + ------- +

Na Node2 pokrenite uslugu MariaDB:

sudo systemctl start mysql

Možete proveriti status usluge MariaDB bez obzira da li radi ili nije sa sledećom komandom:

Sudo sistemski status mysql

Ako je sve u redu, trebalo bi da vidite sledeći izlaz:

?? mariadb.service - poslužitelj baze podataka MariaDB Loaded: loaded (/lib/systemd/system/mariadb.service; omogućeno; unapred postavljeno vendor: omogućeno) Aktivno: aktivno (pokrenuto) od Sun 2017-09-17 10: 11: 20 EDT; Pre 10 Proces: 715 ExecStartPost = / bin / sh -c sistemski unset-okruženje _WSREP_START_POSITION (kod = izlazi, status = 0 / SUCCESS) Proces: 713 ExecStartPost = / etc / mysql / debian-start (code = exited, status = 0 / SUCCESS) Proces: 545 ExecStartPre = / bin / sh -c [! -e / usr / bin / galera_recovery] && VAR = || VAR = `/ usr / bin / galera_recovery`; [$? -eq 0] && systemctl set Proces: 535 ExecStartPre = / bin / sh -c systemctl unset-environment _WSREP_START_POSITION (code = exited, status = 0 / SUCCESS) Proces: 514 ExecStartPre = / usr / bin / install -m 755 -o Glavni PID: 0 (mysqld) Status: "Uzimanje SQL zahteva sada ..." Zadaci: 661 (limit: 26) CGroup: /system.slice/mariadb.service ????? 4915 / usr / sbin / mysqld Sep 661 17: 10: 11 debian systemd [11]: Pokretanje servera baze podataka ... Sep 1 17: 10: 11 debian mysqld [15]: 661-2017-09 17: 10: 11 15 [Napomena] / usr / sbin / mysqld (mysqld 140287134630464-MariaDB-10.1.26 + deb0u9) počinje kao proces Sep 1 17: 10: 11 debian systemd [20 ]: Pokrenuo server MariaDB baze podataka.

Sada, vaš drugi čvor se automatski povezao sa klasterom. To možete potvrditi pomoću sledeće naredbe:

mysql -u root -p -e "prikaži status kao što je 'wsrep_cluster_size'"

Ako sve funkcioniše dobro, veličina klastera treba postaviti na dve:

+ -------------------- + ------- + | Variable_name | Vrednost | + -------------------- + ------- + | wsrep_cluster_size | 2 | + -------------------- + ------- +

Na Node3 pokrenite uslugu MariaDB:

sudo systemctl start mysql
mysql -u root -p -e "prikaži status kao što je 'wsrep_cluster_size'"

Ako sve dobro funkcioniše, veličinu klastera treba postaviti na tri:

+ -------------------- + ------- + | Variable_name | Vrednost | + -------------------- + ------- + | wsrep_cluster_size | 3 | + -------------------- + ------- +

Vi klaster sada radite i komunicirate jedni druge.

Replikacija test baze podataka

Sada, svi čvorovi su na mreži, vreme je da se testira replikacija baze podataka u Galerijskom klasteru. Počnimo stvaranjem baze podataka o Node1-u i proveriti da li se replicira na svim čvorovima.

Prvo, prijavite se na konzolu MariaDb sa sledećom komandom:

mysql -u root -p

Unesite svoju root lozinku i kreirajte bazu podataka sa imenom test_db:

MariaDB [(none)]> kreiraj bazu podataka test_db;
MariaDB [(none)]> prikazuje baze podataka;

+ -------------------- + | Baza podataka | + -------------------- + | test_db | + -------------------- +

Sada idite na Node2 i Node3, a zatim proverite da li replikacija radi ili ne:

mysql -u root -p
MariaDB [(none)]> prikazuje baze podataka;

+ -------------------- + | Baza podataka | + -------------------- + | test_db | + -------------------- +

Čestitam! uspešno ste instalirali i konfigurirali MariaDB Galera Cluster na Ubuntu 16.04 serveru.

zaključak

Nadam se da imate dovoljno znanja za instalaciju i konfigurisanje MariaDB Galera Cluster na Ubuntu 16.04. Sada možete lako skalirati nekoliko ili čak desetine različitih čvorova. Ako imate bilo kakve sumnje ili više upita, onda pogledajte vezu Galera Cluster Doc

izvor

Related post

Ostavite odgovor

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.