Hogyan állítsunk be egy MariaDB Galera klasztert Ubuntu 20.04 rendszeren
A MariaDB klaszter Galera Cluster segítségével történő beállítása javítja az adatbázis megbízhatóságát és egyszerűsíti annak méretezését. Oktatóanyagunkban bemutatjuk, hogyan telepítheti a Galera klasztert az Ubuntu 20.04 rendszerre.
A Galera Cluster MariaDB követelményei
A MariaDB Galera klaszter Ubuntu 20.04 rendszerre történő telepítéséhez a következő követelményeknek kell megfelelnie:
- Több szerver: A klaszter létrehozásához legalább három szerver vagy virtuális gép szükséges. Minden szervernek ugyanazon a hálózaton kell lennie.
- Root jogok: Root hozzáférésre vagy legalább adminisztrátori jogokra van szükség a szervereken.
Hogyan állítsuk be lépésről lépésre a Galera Cluster MariaDB-t Ubuntu 20.04 rendszeren
A MariaDB Galera klaszter egy praktikus adatbázis-megoldás, amely magas rendelkezésre állást, adatintegritást és skálázhatóságot biztosít igényes alkalmazások számára. Ebben a lépésről lépésre bemutatott útmutatóban végigvezetjük Önt a MariaDB Galera klaszter Ubuntu 20.04 rendszeren történő beállításának folyamatán. Mielőtt elkezdené, győződjön meg arról, hogy legalább három szerver vagy virtuális gép áll rendelkezésre a klaszter beállításához.
1. lépés: Csomagok frissítése
Először frissítse Ubuntu rendszerét a legújabb verzióra. Ez elengedhetetlen ahhoz, hogy a csomagok és a biztonsági frissítések naprakészek legyenek.
Nyisson meg egy terminált, és futtassa a következő parancsot a csomagforrások frissítéséhez:
sudo apt updateshellTelepítsen minden elérhető frissítést:
sudo apt upgrade -yshellA szerverek tisztításához javasoljuk az elavult vagy nem használt csomagok eltávolítását is:
sudo apt autoremove -yshell2. lépés: Telepítse a MariaDB-t a szerverekre
Most telepítse a MariaDB-t az összes szerverére. A 10.1-es verziótól kezdve a Galera csomagok a MariaDB szerverekhez vannak csomagolva.
sudo apt install mariadb-servershellA telepítés után elindíthatja a MariaDB szolgáltatást:
sudo systemctl start mariadbshellA következő paranccsal állíthatja be, hogy a MariaDB automatikusan aktiválódjon minden rendszerindításkor:
sudo systemctl enable mariadbshellEllenőrizze, hogy a MariaDB fut-e:
sudo systemctl status mariadbshellEl kell végeznie néhány alapvető biztonsági beállítást és konfigurálnia kell az adatbázist. Ehhez indítsa el a telepítő varázslót:
sudo mysql_secure_installationshellA varázsló végigvezeti Önt a lépéseken, például a root jelszó beállításán, az anonim felhasználók eltávolításán vagy a teszt adatbázis eltávolításán.
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] YshellA szkript először a jelenlegi root jelszót kéri. Ha először telepíti a MariaDB-t az Ubuntu 20.04-re, egyszerűen nyomja meg az Enter billentyűt, majd adjon meg egy új jelszót.
3. lépés: Galera Cluster MariaDB csomópontok konfigurálása
Hozzon létre egy cnf fájlt a /etc/mysql/conf.d könyvtárban minden csomóponton, hogy meghatározza a Galera-specifikus beállításokat.
nano /etc/mysql/conf.d/galera.cnfshellEz a fájl általános adatbázis-beállításokat tartalmaz, például a bináris protokoll formátumát és az alapértelmezett tároló motort. Emellett a Galera klaszter konfigurációit is tartalmazza, beleértve a klaszter nevét és címét.
Az első csomópont esetében illessze be a következő sorokat:
[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- Általános adatbázisbeállítások: Ide tartoznak olyan beállítások, mint
binlog_format=ROWa bináris naplók formátumához ésdefault-storage-engine=innodbaz alapértelmezett tárolómotorhoz. - Galera szolgáltató konfiguráció: Az olyan beállítások, mint
wsrep_on=ON, a Galera replikáció engedélyezésére szolgálnak,wsrep_provider=/usr/lib/galera/libgalera_smm.sopedig a Galera könyvtár elérési útjának megadására. - Galera klaszter konfiguráció: Ide tartozik a klaszter neve (
wsrep_cluster_name) és a klaszter címe (wsrep_cluster_address), amely a klaszter csomópontjainak IP-címeit vagy gazdanevét tartalmazza. - Galera szinkronizálás konfigurációja: Beállítja a State Snapshot Transfer (SST) módszert, pl.
wsrep_sst_method=rsync. - Galera csomópont konfiguráció: Meghatározza az aktuális csomópont IP-címét vagy gazdanevét (
wsrep_node_address) és a csomópont nevét (wsrep_node_name).
Miután elmentette a fájlt, hozzon létre egyet a második csomópont számára:
[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"shellMost folytassa az utolsó csomóponttal:
[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"shell4. lépés: A szerverek tűzfalának módosítása
Mivel a csomópontok meghatározott portokon keresztül kommunikálnak egymással, módosítania kell a tűzfal beállításait.
Nyissa meg a következő portokat a tűzfalon:
- 3306-os port: Ez a MariaDB standard portja. Adatbázis-kommunikációra és lekérdezésekre használják.
- Galera portok: A standard 3306-os porton kívül a Galera más portokat is használ a csomópontok közötti belső kommunikációhoz. A Galera portok standard tartománya általában 4567, 4568 és 4444 a State Snapshot Transfer (SST) számára.
Az Ubuntu szerver tűzfal beállításait a következő paranccsal határozhatja meg:
sudo ufw allow 3306,4567,4568,4444/tcp
sudo ufw allow 4567/udpshell5. lépés: Indítsa el a Galera Cluster MariaDB-t
Állítsa le a MariaDB szolgáltatást, ha már fut:
sudo systemctl stop mariadbshellEz a parancs elindítja a MariaDB szervert és inicializál egy új Galera klasztert az első csomóponton:
sudo galera_new_clustershellEllenőrizze a klaszter csomópontjainak számát:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellA következő kimenetet kell kapnia:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 1 |
+--------------------------+------------ -+shellAz első csomópont sikeresen elindult.
Aktiválja a második csomópontot:
systemctl start mariadbshellEllenőrizze, hogy nőtt-e a csomópontok száma:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellA konzolban a következőket látjuk:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 2 |
+--------------------------+--------------+shellMost kezdjük el a harmadik csomópontot:
systemctl start mariadbshellEllenőrizze, hogy a csomópont megfelelően működik-e:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellMost már három csomópontnak kell lennie a klaszterben:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 3 |
+--------------------------+------------ -+shell6. lépés: Tesztelje a replikációt
Győződjön meg arról, hogy minden csomóponttal kapcsolatot tud létesíteni a klaszterben. A MariaDB kliens segítségével jelentkezzen be root felhasználóként vagy más, megfelelő jogosultságokkal rendelkező felhasználóként.
mysql -u root -pshellHozzon létre egy új tesztadatbázist a fürt egyik csomópontján:
CREATE DATABASE test_db;sqlJelentkezzen be a többi csomópontra, és ellenőrizze, hogy a tesztadatbázis elérhető-e:
SHOW DATABASES;sqlA tesztadatbázisnak meg kell jelennie az adatbázisok listájában:
+-------------------------------+
| Database |
+-------------------------------+
| information_schema |
| mysql |
| performance_schema |
| test_db |
| sys |
+------------------------------+sqlAdjon hozzá egy új teszt táblázatot a teszt adatbázishoz:
USE test_db;
CREATE TABLE test_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);sqlÍrjon be néhány tesztadatot a teszt táblázat name oszlopába:
INSERT INTO test_table (name) VALUES ('Alice'), ('Bob'), ('Charlie');sqlEllenőrizze a többi csomópontot, hogy a teszt táblázat és a beillesztett adatok átkerültek-e:
USE test_db;
SELECT * FROM test_table;sqlA kimenet megmutatja nekünk a személyek listáját a nevükkel és azonosítójukkal együtt:
+----+-----------+
| id | name |
+----+-----------+
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
+----+----------+sqlAdatrekord frissítése a teszt táblázatban:
UPDATE test_table SET name = 'David' WHERE name = 'Alice';sqlPróbáljon meg törölni egy adatrekordot:
DELETE FROM test_table WHERE name = 'Bob';sqlEllenőrizze a többi csomópontot, hogy a frissítések és törlések replikálódtak-e:
SELECT * FROM test_table;sqlA változások minden csomóponton sikeresen megjelennek:
+----+------------+
| id | name |
+----+-----------+
| 1 | David |
| 3 | Charlie |
+----+-----------+sql