Kaip nustatyti MariaDB Galera klasterį Ubuntu 20.04
MariaDB klasterio su Galera Cluster įdiegimas padidina patikimumą ir supaprastina duomenų bazės mastelio keitimą. Mūsų pamokoje parodysime, kaip įdiegti Galera klasterį Ubuntu 20.04.
Reikalavimai Galera Cluster MariaDB
Norėdami įdiegti MariaDB Galera klasterį Ubuntu 20.04, turite įvykdyti šiuos reikalavimus:
- Keli serveriai: norint sukurti klasterį, reikia mažiausiai trijų serverių arba virtualių mašinų. Visi serveriai turi būti tame pačiame tinkle.
- Root teisės: Jums reikalingos root teisės arba bent jau administratoriaus teisės serveriuose.
Kaip žingsnis po žingsnio nustatyti Galera Cluster MariaDB Ubuntu 20.04 sistemoje
MariaDB Galera klasteris yra praktiškas duomenų bazės sprendimas, užtikrinantis aukštą prieinamumą, duomenų vientisumą ir mastelį reiklioms programoms. Šiame žingsnis po žingsnio vadove mes paaiškinsime, kaip nustatyti MariaDB Galera klasterį Ubuntu 20.04. Prieš pradėdami, įsitikinkite, kad turite bent tris serverius arba virtualias mašinas, skirtas klasteriui nustatyti.
1 žingsnis: Atnaujinkite paketus
Pirmiausia turėtumėte atnaujinti savo Ubuntu sistemą iki naujausios versijos. Tai būtina, kad turėtumėte naujausius paketus ir saugumo atnaujinimus.
Atidarykite terminalą ir vykdykite šią komandą, kad atnaujintumėte paketų šaltinius:
sudo apt updateshellĮdiekite visus galimus atnaujinimus:
sudo apt upgrade -yshellRekomenduojame taip pat pašalinti pasenusius arba nenaudojamus paketus, kad išvalytumėte serverius:
sudo apt autoremove -yshell2 žingsnis: įdiekite MariaDB į serverius
Dabar įdiekite MariaDB į visus savo serverius. Nuo 10.1 versijos Galera paketai yra pridedami prie MariaDB serverių.
sudo apt install mariadb-servershellĮdiegus, galite paleisti MariaDB paslaugą:
sudo systemctl start mariadbshellNaudokite šią komandą, kad MariaDB būtų aktyvuojama automatiškai kiekvieną kartą, kai sistema yra perkraunama:
sudo systemctl enable mariadbshellPatikrinkite, ar MariaDB veikia:
sudo systemctl status mariadbshellTaip pat turėtumėte atlikti keletą pagrindinių saugumo nustatymų ir sukonfigūruoti duomenų bazę. Norėdami tai padaryti, paleiskite sąrankos vedlį:
sudo mysql_secure_installationshellVedlys padės jums atlikti visus veiksmus, pvz., nustatyti pagrindinį slaptažodį, pašalinti anonimiškus vartotojus arba pašalinti bandomąją duomenų bazę.
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] YshellSkriptas pirmiausia paprašo įvesti dabartinį root slaptažodį. Jei MariaDB diegiate Ubuntu 20.04 pirmą kartą, tiesiog paspauskite Enter ir įveskite naują slaptažodį.
3 žingsnis: Konfigūruokite Galera Cluster MariaDB mazgus
Kiekviename mazge sukurkite cnf failą kataloge /etc/mysql/conf.d, kad apibrėžtumėte Galera specifinius nustatymus.
nano /etc/mysql/conf.d/galera.cnfshellŠis failas yra bendrieji duomenų bazės nustatymai, pvz., dvejopo protokolo formatas ir numatytasis saugojimo variklis. Jame taip pat yra Galera klasterio konfigūracijos, įskaitant klasterio pavadinimą ir klasterio adresą.
Įterpkite šias eilutes pirmam mazgui:
[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- Bendrieji duomenų bazės nustatymai: Tai apima tokius nustatymus kaip
binlog_format=ROW, skirtą dvejopojo žurnalo formatui, irdefault-storage-engine=innodb, skirtą numatytam saugojimo varikliui. - Galera teikėjo konfigūracija: nustatymai, tokie kaip
wsrep_on=ON, naudojami Galera replikacijai įjungti, owsrep_provider=/usr/lib/galera/libgalera_smm.so– Galera bibliotekos keliui nurodyti. - Galera klasterio konfigūracija: Tai apima klasterio pavadinimą (
wsrep_cluster_name) ir klasterio adresą (wsrep_cluster_address), kuriame yra klasterio mazgų IP adresai arba hostų pavadinimai. - Galera sinchronizavimo konfigūracija: konfigūruoja būsenos momentinės kopijos perdavimo (SST) metodą, pvz.,
wsrep_sst_method=rsync. - Galera mazgo konfigūracija: apibrėžia dabartinio mazgo IP adresą arba kompiuterio vardą (
wsrep_node_address) ir mazgo pavadinimą (wsrep_node_name).
Išsaugoję failą, sukurkite antrąjį mazgą:
[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"shellDabar tęskite su paskutiniu mazgu:
[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 žingsnis: pakeiskite serverių ugniasienę
Kadangi mazgai tarpusavyje bendrauja per tam tikrus prievadus, turite pakoreguoti užkardos nustatymus.
Atidarykite šiuos ugniesienės prievadus:
- 3306 uostas: tai yra standartinis MariaDB uostas. Jis naudojamas duomenų bazės ryšiui ir užklausoms.
- Galera prievadai: Be standartinio prievado 3306, Galera taip pat naudoja kitus prievadus vidiniam ryšiui tarp mazgų. Standartinis Galera prievadų diapazonas paprastai yra 4567, 4568 ir 4444, skirti būsenos momentinių kopijų perdavimui (SST).
Ubuntu serveryje galite nustatyti ugniasienės parametrus naudodami šią komandą:
sudo ufw allow 3306,4567,4568,4444/tcp
sudo ufw allow 4567/udpshell5 žingsnis: Paleiskite Galera Cluster MariaDB
Jei MariaDB paslauga jau veikia, ją reikia sustabdyti:
sudo systemctl stop mariadbshellŠi komanda paleidžia MariaDB serverį ir inicijuoja naują Galera klasterį pirmajame mazge:
sudo galera_new_clustershellPatikrinkite mazgų skaičių klasteryje:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellTurėtumėte gauti tokį rezultatą:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 1 |
+--------------------------+------------ -+shellPirmasis mazgas buvo sėkmingai paleistas.
Aktyvuokite antrąjį mazgą:
systemctl start mariadbshellPatikrinkite, ar padidėjo mazgų skaičius:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellKonsolėje matome:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 2 |
+--------------------------+--------------+shellDabar pradedame trečiąjį mazgą:
systemctl start mariadbshellPatikrinkite, ar mazgas veikia tinkamai:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellDabar klasteryje turėtų būti trys mazgai:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 3 |
+--------------------------+------------ -+shell6 žingsnis: išbandykite replikaciją
Įsitikinkite, kad galite nustatyti ryšį su kiekvienu klasterio mazgu. Naudokite MariaDB klientą, kad prisijungtumėte kaip root vartotojas arba kitas vartotojas, turintis pakankamas teises.
mysql -u root -pshellSukurkite naują bandomąją duomenų bazę viename iš klasterio mazgų:
CREATE DATABASE test_db;sqlPrisijunkite prie kitų mazgų ir patikrinkite, ar testavimo duomenų bazė yra prieinama:
SHOW DATABASES;sqlBandomoji duomenų bazė turėtų pasirodyti duomenų bazių sąraše:
+-------------------------------+
| Database |
+-------------------------------+
| information_schema |
| mysql |
| performance_schema |
| test_db |
| sys |
+------------------------------+sqlPridėkite naują bandymų lentelę į bandymų duomenų bazę:
USE test_db;
CREATE TABLE test_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);sqlĮveskite keletą bandomųjų duomenų į bandymų lentelės name stulpelį:
INSERT INTO test_table (name) VALUES ('Alice'), ('Bob'), ('Charlie');sqlPatikrinkite kitus mazgus, ar bandomoji lentelė ir įterpti duomenys buvo perkelti:
USE test_db;
SELECT * FROM test_table;sqlRezultatas rodo žmonių sąrašą su jų vardais ir ID:
+----+-----------+
| id | name |
+----+-----------+
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
+----+----------+sqlNorėdami atnaujinti duomenų įrašą bandymų lentelėje:
UPDATE test_table SET name = 'David' WHERE name = 'Alice';sqlPabandykite ištrinti duomenų įrašą:
DELETE FROM test_table WHERE name = 'Bob';sqlPatikrinkite kitus mazgus, ar atnaujinimai ir ištrinimai buvo replikuoti:
SELECT * FROM test_table;sqlPakeitimai sėkmingai rodomi kiekviename mazge:
+----+------------+
| id | name |
+----+-----------+
| 1 | David |
| 3 | Charlie |
+----+-----------+sql