Kuidas seadistada MariaDB Galera klastrit Ubuntu 20.04-s
MariaDB klastri seadistamine Galera Clusteriga parandab andmebaasi töökindlust ja lihtsustab selle skaleerimist. Meie juhendis näitame, kuidas installida Galera klastrit Ubuntu 20.04-le.
Galera Cluster MariaDB nõuded
MariaDB Galera klastri installimiseks Ubuntu 20.04-le peate täitma järgmised nõuded:
- Mitmed serverid: klastri loomiseks on vaja vähemalt kolme serverit või virtuaalmasinat. Kõik serverid peavad asuma samas võrgus.
- Root-õigused: vajate serveritel root-juurdepääsu või vähemalt administraatoriõigusi.
Kuidas seadistada Galera Cluster MariaDB Ubuntu 20.04-s samm-sammult
MariaDB Galera klastri on praktiline andmebaasi lahendus, mis pakub kõrget kättesaadavust, andmete terviklikkust ja skaleeritavust nõudlikele rakendustele. Selles samm-sammult juhendis tutvustame teile MariaDB Galera klastri seadistamise protsessi Ubuntu 20.04-s. Enne alustamist veenduge, et teil on klastri seadistamiseks vähemalt kolm serverit või virtuaalmasinat.
1. samm: Pakettide uuendamine
Esmalt peaksite oma Ubuntu süsteemi uuendama viimase versioonini. See on oluline, et teil oleksid olemas ajakohased paketid ja turbeuuendused.
Ava terminal ja täida järgmine käsk, et uuendada paketi allikaid:
sudo apt updateshellPaigalda kõik saadaval olevad värskendused:
sudo apt upgrade -yshellSoovitame ka eemaldada aegunud või kasutamata paketid, et puhastada servereid:
sudo apt autoremove -yshell2. samm: MariaDB installimine serveritele
Nüüd installige MariaDB kõikidele oma serveritele. Alates versioonist 10.1 on Galera paketid MariaDB serveritega kaasas.
sudo apt install mariadb-servershellPärast installimist saate käivitada MariaDB teenuse:
sudo systemctl start mariadbshellKasutage järgmist käsku, et seadistada MariaDB automaatselt aktiveeruma iga kord, kui süsteem taaskäivitatakse:
sudo systemctl enable mariadbshellKontrollige, kas MariaDB töötab:
sudo systemctl status mariadbshellSamuti peaksite tegema mõned põhilised turvasätted ja konfigureerima andmebaasi. Selleks käivitage seadistusviisard:
sudo mysql_secure_installationshellViisard juhendab teid läbi erinevate sammude, nagu juurkasutaja parooli seadmine, anonüümsete kasutajate eemaldamine või testandmebaasi eemaldamine.
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] YshellSkript küsib esmalt praegust root-parooli. Kui installite MariaDB Ubuntu 20.04-le esimest korda, vajutage lihtsalt Enter ja sisestage uus parool.
3. samm: Galera Cluster MariaDB sõlmede konfigureerimine
Looge igas sõlmes kataloogis /etc/mysql/conf.d fail cnf, et määratleda Galera-spetsiifilised seaded.
nano /etc/mysql/conf.d/galera.cnfshellSee fail sisaldab üldisi andmebaasi seadeid, nagu binaarne protokollivorming ja vaikimisi salvestusmootor. Samuti sisaldab see Galera klastri konfiguratsioone, sealhulgas 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 andmebaasi seaded: Siia kuuluvad näiteks seaded
binlog_format=ROWbinaarlogide formaadi jaoks jadefault-storage-engine=innodbvaikimisi salvestusmootori jaoks. - Galera pakkuja konfiguratsioon: Seaded nagu
wsrep_on=ONkasutatakse Galera replikatsiooni lubamiseks jawsrep_provider=/usr/lib/galera/libgalera_smm.soGalera raamatukogu asukoha määramiseks. - Galera klastri konfiguratsioon: See hõlmab klastri nime (
wsrep_cluster_name) ja klastri aadressi (wsrep_cluster_address), mis sisaldab klastri sõlmede IP-aadresse või hostinimesid. - Galera sünkroniseerimise konfiguratsioon: konfigureerib State Snapshot Transfer (SST) meetodi, nt
wsrep_sst_method=rsync. - Galera sõlme konfiguratsioon: määrab praeguse sõlme IP-aadressi või hostinime (
wsrep_node_address) ja sõlme nime (wsrep_node_name).
Pärast faili salvestamist 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"shellNüü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"shell4. samm: Muuda serverite tulemüüri seadeid
Kuna sõlmed suhtlevad omavahel spetsiifiliste portide kaudu, peate kohandama tulemüüri seadeid.
Avage oma tulemüüris järgmised pordid:
- Port 3306: See on MariaDB standardport. Seda kasutatakse andmebaasi suhtluseks ja päringuteks.
- Galera pordid: Lisaks standardpordile 3306 kasutab Galera ka teisi porte sõlmede vaheliseks sisekommunikatsiooniks. Galera portide standardvahemik on tavaliselt 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/udpshell5. samm: Galera Cluster MariaDB käivitamine
Peatage MariaDB teenus, kui see juba töötab:
sudo systemctl stop mariadbshellSee käsk käivitab MariaDB serveri ja algatab uue Galera klastri esimeses sõlmes:
sudo galera_new_clustershellKontrollige klastri sõlmede arvu:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellSa peaksid saama järgmise väljundi:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 1 |
+--------------------------+------------ -+shellEsimene sõlm käivitati edukalt.
Aktiveeri teine sõlm:
systemctl start mariadbshellKontrollige, kas sõlmede arv on suurenenud:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellKonsolis näeme:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 2 |
+--------------------------+--------------+shellNüüd alustame kolmanda sõlme:
systemctl start mariadbshellKontrollige, kas sõlm töötab korralikult:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellKlastris peaks nüüd olema kolm sõlme:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 3 |
+--------------------------+------------ -+shell6. samm: Testige replikatsiooni
Veenduge, et saate luua ühenduse klastri iga sõlme. Kasutage MariaDB klienti, et sisse logida root-kasutajana või mõne teise piisavate õigustega kasutajana.
mysql -u root -pshellLoo uus testandmebaas ühes klastri sõlmes:
CREATE DATABASE test_db;sqlLogi sisse teistesse sõlmedesse ja kontrolli, kas testandmebaas on kättesaadav:
SHOW DATABASES;sqlTestandmebaas peaks ilmuma andmebaaside loendisse:
+-------------------------------+
| Database |
+-------------------------------+
| information_schema |
| mysql |
| performance_schema |
| test_db |
| sys |
+------------------------------+sqlLisa testandmebaasi uus testtabel:
USE test_db;
CREATE TABLE test_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);sqlSisestage mõned testandmed testtabelisse veergu name:
INSERT INTO test_table (name) VALUES ('Alice'), ('Bob'), ('Charlie');sqlKontrollige teisi sõlmi, et näha, kas testtabel ja sisestatud andmed on üle kantud:
USE test_db;
SELECT * FROM test_table;sqlVäljund näitab meile inimeste nimekirja koos nende nimede ja ID-dega:
+----+-----------+
| id | name |
+----+-----------+
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
+----+----------+sqlAndmete uuendamine testtabelis:
UPDATE test_table SET name = 'David' WHERE name = 'Alice';sqlProovi kustutada andmeid:
DELETE FROM test_table WHERE name = 'Bob';sqlKontrollige teisi sõlmi, et näha, kas uuendused ja kustutused on replikeeritud:
SELECT * FROM test_table;sqlMuudatused kuvatakse edukalt igas sõlmes:
+----+------------+
| id | name |
+----+-----------+
| 1 | David |
| 3 | Charlie |
+----+-----------+sql