MariaDB klastri sea­dis­ta­mine Galera Clus­teriga parandab and­me­ba­asi töö­kind­lust ja liht­sus­tab selle ska­lee­ri­mist. Meie juhendis näitame, kuidas ins­tal­lida Galera klastrit Ubuntu 20.04-le.

Galera Cluster MariaDB nõuded

MariaDB Galera klastri ins­tal­li­miseks Ubuntu 20.04-le peate täitma järgmised nõuded:

  • Mitmed serverid: klastri loomiseks on vaja vähemalt kolme serverit või vir­tuaal­ma­si­nat. Kõik serverid peavad asuma samas võrgus.
  • Root-õigused: vajate ser­ve­ri­tel root-juur­de­pääsu või vähemalt ad­mi­nist­raa­to­ri­õi­gusi.

Kuidas sea­dis­tada Galera Cluster MariaDB Ubuntu 20.04-s samm-sammult

MariaDB Galera klastri on prak­ti­line and­me­ba­asi lahendus, mis pakub kõrget kät­te­saa­da­vust, andmete ter­vik­lik­kust ja ska­lee­ri­ta­vust nõud­li­kele ra­ken­dus­tele. Selles samm-sammult juhendis tut­vus­tame teile MariaDB Galera klastri sea­dis­ta­mise protsessi Ubuntu 20.04-s. Enne alus­ta­mist veenduge, et teil on klastri sea­dis­ta­miseks vähemalt kolm serverit või vir­tuaal­ma­si­nat.

1. samm: Pakettide uuen­da­mine

Esmalt peaksite oma Ubuntu süsteemi uuendama viimase ver­sioo­nini. See on oluline, et teil oleksid olemas aja­ko­ha­sed paketid ja tur­be­uuen­dused.

Ava terminal ja täida järgmine käsk, et uuendada paketi allikaid:

sudo apt update
shell

Paigalda kõik saadaval olevad värs­ken­dused:

sudo apt upgrade -y
shell

Soovitame ka eemaldada aegunud või ka­su­ta­mata paketid, et puhastada servereid:

sudo apt autoremove -y
shell

2. samm: MariaDB ins­tal­li­mine ser­ve­ri­tele

Nüüd ins­tal­lige MariaDB kõikidele oma ser­ve­ri­tele. Alates ver­sioo­nist 10.1 on Galera paketid MariaDB ser­ve­ri­tega kaasas.

sudo apt install mariadb-server
shell

Pärast ins­tal­li­mist saate käivitada MariaDB teenuse:

sudo systemctl start mariadb
shell

Kasutage järgmist käsku, et sea­dis­tada MariaDB au­to­maat­selt ak­ti­vee­ruma iga kord, kui süsteem taas­käi­vi­ta­takse:

sudo systemctl enable mariadb
shell

Kont­rol­lige, kas MariaDB töötab:

sudo systemctl status mariadb
shell

Samuti peaksite tegema mõned põhilised tur­va­sät­ted ja kon­fi­gu­ree­rima and­me­ba­asi. Selleks käivitage sea­dis­tus­vii­sard:

sudo mysql_secure_installation
shell

Viisard juhendab teid läbi erinevate sammude, nagu juur­ka­su­taja parooli seadmine, ano­nüüm­sete ka­su­ta­jate eemal­da­mine või tes­tand­me­ba­asi eemal­da­mine.

Enter current password for root (enter for none): 
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
New password:
Re-enter new password:
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
shell

Skript küsib esmalt praegust root-parooli. Kui ins­tal­lite MariaDB Ubuntu 20.04-le esimest korda, vajutage lihtsalt Enter ja sisestage uus parool.

3. samm: Galera Cluster MariaDB sõlmede kon­fi­gu­ree­ri­mine

Looge igas sõlmes ka­ta­loo­gis /etc/mysql/conf.d fail cnf, et mää­rat­leda Galera-spet­sii­fi­li­sed seaded.

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

See fail sisaldab üldisi and­me­ba­asi seadeid, nagu binaarne pro­to­kol­li­vor­ming ja vaikimisi sal­ves­tus­moo­tor. Samuti sisaldab see Galera klastri kon­fi­gu­rat­sioone, seal­hul­gas klastri nime ja klastri aadressi.

Lisage järgmised read esimese sõlme jaoks:

[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://node_1-ip-address,node_2-ip-address,node_3-ip-address"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="node_1-ip-address"
wsrep_node_name="node_1"
shell
  • Üldised and­me­ba­asi seaded: Siia kuuluvad näiteks seaded binlog_format=ROW bi­naar­lo­gide formaadi jaoks ja default-storage-engine=innodb vaikimisi sal­ves­tus­moo­tori jaoks.
  • Galera pakkuja kon­fi­gu­rat­sioon: Seaded nagu wsrep_on=ON ka­su­ta­takse Galera rep­li­kat­siooni lu­ba­miseks ja wsrep_provider=/usr/lib/galera/libgalera_smm.so Galera raa­ma­tu­kogu asukoha mää­ra­miseks.
  • Galera klastri kon­fi­gu­rat­sioon: See hõlmab klastri nime (wsrep_cluster_name) ja klastri aadressi (wsrep_cluster_address), mis sisaldab klastri sõlmede IP-aadresse või hos­tini­me­sid.
  • Galera sünk­ro­ni­see­ri­mise kon­fi­gu­rat­sioon: kon­fi­gu­ree­rib State Snapshot Transfer (SST) meetodi, nt wsrep_sst_method=rsync.
  • Galera sõlme kon­fi­gu­rat­sioon: määrab praeguse sõlme IP-aadressi või hostinime (wsrep_node_address) ja sõlme nime (wsrep_node_name).

Pärast faili sal­ves­ta­mist looge teine sõlm:

[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://node_1-ip-address,node_2-ip-address,node_3-ip-address"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="node_2-ip-address"
wsrep_node_name="node_2"
shell

Nüüd jätkake viimase sõlmega:

[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://node_1-ip-address,node_2-ip-address,node_3-ip-address"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="node_3-ip-address"
wsrep_node_name="node_3"
shell

4. samm: Muuda serverite tulemüüri seadeid

Kuna sõlmed suhtlevad omavahel spet­sii­fi­liste portide kaudu, peate kohandama tulemüüri seadeid.

Avage oma tu­le­müü­ris järgmised pordid:

  • Port 3306: See on MariaDB stan­dard­port. Seda ka­su­ta­takse and­me­ba­asi suht­luseks ja pä­rin­gu­teks.
  • Galera pordid: Lisaks stan­dard­por­dile 3306 kasutab Galera ka teisi porte sõlmede va­he­li­seks si­se­kom­mu­ni­kat­sioo­niks. Galera portide stan­dard­va­he­mik on ta­va­li­selt 4567, 4568 ja 4444 State Snapshot Transfer (SST) jaoks.

Ubuntu serveri tulemüüri seaded saab määrata järgmise käsuga:

sudo ufw allow 3306,4567,4568,4444/tcp
sudo ufw allow 4567/udp
shell

5. samm: Galera Cluster MariaDB käi­vi­ta­mine

Peatage MariaDB teenus, kui see juba töötab:

sudo systemctl stop mariadb
shell

See käsk käivitab MariaDB serveri ja algatab uue Galera klastri esimeses sõlmes:

sudo galera_new_cluster
shell

Kont­rol­lige klastri sõlmede arvu:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
shell

Sa peaksid saama järgmise väljundi:

+---------------------------+-------------+
| Variable_name        | Value       |
+--------------------------+--------------+
| wsrep_cluster_size | 1              |
+--------------------------+------------ -+
shell

Esimene sõlm käivitati edukalt.

Aktiveeri teine sõlm:

systemctl start mariadb
shell

Kont­rol­lige, kas sõlmede arv on suu­re­ne­nud:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
shell

Konsolis näeme:

+---------------------------+-------------+
| Variable_name        | Value       |
+--------------------------+--------------+
| wsrep_cluster_size | 2               |
+--------------------------+--------------+
shell

Nüüd alustame kolmanda sõlme:

systemctl start mariadb
shell

Kont­rol­lige, kas sõlm töötab kor­ra­li­kult:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
shell

Klastris peaks nüüd olema kolm sõlme:

+---------------------------+-------------+
| Variable_name        | Value       |
+--------------------------+--------------+
| wsrep_cluster_size | 3              |
+--------------------------+------------ -+
shell

6. samm: Testige rep­li­kat­siooni

Veenduge, et saate luua ühenduse klastri iga sõlme. Kasutage MariaDB klienti, et sisse logida root-ka­su­ta­jana või mõne teise piisavate õigustega ka­su­ta­jana.

mysql -u root -p
shell

Loo uus tes­tand­me­baas ühes klastri sõlmes:

CREATE DATABASE test_db;
sql

Logi sisse teistesse sõl­me­desse ja kontrolli, kas tes­tand­me­baas on kät­te­saa­dav:

SHOW DATABASES;
sql

Tes­tand­me­baas peaks ilmuma and­me­baaside loendisse:

+-------------------------------+
| Database                        |
+-------------------------------+
| information_schema   |
| mysql                              |
| performance_schema |
| test_db                          | 
| sys                                  |
+------------------------------+
sql

Lisa tes­tand­me­ba­asi uus testtabel:

USE test_db;
CREATE TABLE test_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50)
);
sql

Sisestage mõned tes­tand­med test­ta­be­lisse veergu name:

INSERT INTO test_table (name) VALUES ('Alice'), ('Bob'), ('Charlie');
sql

Kont­rol­lige teisi sõlmi, et näha, kas testtabel ja si­ses­ta­tud andmed on üle kantud:

USE test_db;
SELECT * FROM test_table;
sql

Väljund näitab meile inimeste nimekirja koos nende nimede ja ID-dega:

+----+-----------+
| id | name    |
+----+-----------+
| 1  | Alice     |
| 2  | Bob       |
| 3  | Charlie |
+----+----------+
sql

Andmete uuen­da­mine test­ta­be­lis:

UPDATE test_table SET name = 'David' WHERE name = 'Alice';
sql

Proovi kustutada andmeid:

DELETE FROM test_table WHERE name = 'Bob';
sql

Kont­rol­lige teisi sõlmi, et näha, kas uuendused ja kus­tu­tused on rep­li­kee­ri­tud:

SELECT * FROM test_table;
sql

Muu­da­tu­sed kuvatakse edukalt igas sõlmes:

+----+------------+
| id | name     |
+----+-----------+
| 1  | David    |
| 3  | Charlie  |
+----+-----------+
sql
Go to Main Menu