Kā uzstādīt MariaDB Galera klasteri Ubuntu 20.04
MariaDB klastera izveide ar Galera Cluster uzlabo uzticamību un vienkāršo datu bāzes mērogošanu. Mūsu apmācībā parādīsim, kā instalēt Galera klasteri Ubuntu 20.04.
Prasības Galera Cluster MariaDB
Lai instalētu MariaDB Galera klasteri Ubuntu 20.04, jums ir jāizpilda šādas prasības:
- Vairāki serveri: Lai izveidotu klasteri, ir nepieciešami vismaz trīs serveri vai virtuālās mašīnas. Visiem serveriem jāatrodas vienā tīklā.
- Piekļuves tiesības: Jums ir nepieciešamas piekļuves tiesības vai vismaz administratora tiesības uz serveriem.
Kā soli pa solim uzstādīt Galera Cluster MariaDB Ubuntu 20.04
MariaDB Galera klasteris ir praktisks datu bāzes risinājums, kas nodrošina augstu pieejamību, datu integritāti un mērogojamību prasīgām lietojumprogrammām. Šajā soli pa solim izklāstītajā rokasgrāmatā mēs izskaidrosim, kā uzstādīt MariaDB Galera klasteri Ubuntu 20.04. Pirms sākat, pārliecinieties, ka jums ir vismaz trīs serveri vai virtuālās mašīnas, kas pieejamas klastera uzstādīšanai.
1. solis: Atjauniniet paketes
Vispirms jums jāatjaunina Ubuntu sistēma līdz jaunākajai versijai. Tas ir nepieciešams, lai jums būtu jaunākās programmatūras paketes un drošības atjauninājumi.
Atveriet termināli un izpildiet šādu komandu, lai atjauninātu pakotņu avotus:
sudo apt updateshellInstalējiet visus pieejamos atjauninājumus:
sudo apt upgrade -yshellLai attīrītu serverus, ieteicams arī izdzēst novecojušas vai neizmantotas programmatūras paketes:
sudo apt autoremove -yshell2. solis: instalējiet MariaDB serveros
Tagad instalējiet MariaDB visos savos serveros. Sākot no versijas 10.1, Galera paketes ir iekļautas MariaDB serveru komplektā.
sudo apt install mariadb-servershellPēc instalēšanas varat sākt MariaDB pakalpojumu:
sudo systemctl start mariadbshellIzmantojiet šo komandu, lai iestatītu MariaDB automātisku aktivizēšanu katru reizi, kad sistēma tiek pārstartēta:
sudo systemctl enable mariadbshellPārbaudiet, vai MariaDB darbojas:
sudo systemctl status mariadbshellJums ir arī jāveic dažas pamata drošības iestatījumu un datu bāzes konfigurācijas darbības. Lai to izdarītu, palaidiet uzstādīšanas vedni:
sudo mysql_secure_installationshellVednis palīdzēs jums iziet visus soļus, piemēram, iestatīt galveno paroli, dzēst anonīmos lietotājus vai dzēst testa datu bāzi.
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] YshellSkripts vispirms lūdz ievadīt pašreizējo root paroles. Ja instalējat MariaDB Ubuntu 20.04 pirmo reizi, vienkārši nospiediet Enter un ievadiet jaunu paroli.
3. solis: Konfigurējiet Galera Cluster MariaDB mezglus
Izveidojiet cnf failu direktorijā /etc/mysql/conf.d katrā mezglā, lai definētu Galera specifiskos iestatījumus.
nano /etc/mysql/conf.d/galera.cnfshellŠis fails satur vispārējus datu bāzes iestatījumus, piemēram, binārā protokola formātu un noklusējuma uzglabāšanas dzinēju. Tas satur arī Galera klastera konfigurācijas, tostarp klastera nosaukumu un adresi.
Ievietojiet šādas rindas pirmajam mezglam:
[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- Vispārējie datu bāzes iestatījumi: Tas ietver tādas iestatījumu kā
binlog_format=ROWbināro žurnālu formāts undefault-storage-engine=innodbnoklusējuma uzglabāšanas dzinējs. - Galera nodrošinātāja konfigurācija: iestatījumi, piemēram,
wsrep_on=ON, tiek izmantoti, lai aktivizētu Galera replikāciju, unwsrep_provider=/usr/lib/galera/libgalera_smm.so, lai norādītu ceļu uz Galera bibliotēku. - Galera klastera konfigurācija: Tas ietver klastera nosaukumu (
wsrep_cluster_name) un klastera adresi (wsrep_cluster_address), kas satur klastera mezglu IP adreses vai uzņēmuma nosaukumus. - Galera sinhronizācijas konfigurācija: konfigurē metodi State Snapshot Transfer (SST), piemēram,
wsrep_sst_method=rsync. - Galera mezgla konfigurācija: definē pašreizējā mezgla IP adresi vai uzņēmuma nosaukumu (
wsrep_node_address) un mezgla nosaukumu (wsrep_node_name).
Pēc faila saglabāšanas izveidojiet failu otrajam mezglam:
[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"shellTagad turpiniet ar pēdējo mezglu:
[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. solis: mainiet serveru ugunsmūri
Tā kā mezgli savstarpēji sazinās, izmantojot konkrētus portus, jums ir jāpielāgo ugunsmūra iestatījumi.
Atveriet šādus portus ugunsmūrī:
- 3306. ports: Tas ir standarta ports MariaDB. To izmanto datu bāzes komunikācijai un pieprasījumiem.
- Galera porti: Papildus standarta portam 3306 Galera izmanto arī citus portus iekšējai komunikācijai starp mezgliem. Standarta diapazons Galera portiem parasti ir 4567, 4568 un 4444 State Snapshot Transfer (SST).
Jūs varat definēt ugunsmūra iestatījumus savā Ubuntu serverī, izmantojot šādu komandu:
sudo ufw allow 3306,4567,4568,4444/tcp
sudo ufw allow 4567/udpshell5. solis: Palaižiet Galera Cluster MariaDB
Pārtrauciet MariaDB pakalpojumu, ja tas jau darbojas:
sudo systemctl stop mariadbshellŠī komanda palaista MariaDB serveri un inicializē jaunu Galera klasteri pirmajā mezglā:
sudo galera_new_clustershellPārbaudiet mezglu skaitu klasterī:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellJums jāsaņem šāds izvades rezultāts:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 1 |
+--------------------------+------------ -+shellPirmais mezgls tika veiksmīgi palaists.
Aktivizējiet otro mezglu:
systemctl start mariadbshellPārbaudiet, vai mezglu skaits ir palielinājies:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellKonsolē redzam:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 2 |
+--------------------------+--------------+shellTagad sākam trešo mezglu:
systemctl start mariadbshellPārbaudiet, vai mezgls darbojas pareizi:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellTagad klasterī vajadzētu būt trīs mezgliem:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 3 |
+--------------------------+------------ -+shell6. solis: Pārbaudiet replikāciju
Pārliecinieties, ka varat izveidot savienojumu ar katru mezglu klasterī. Izmantojiet MariaDB klientu, lai pieteiktos kā galvenais lietotājs vai kā cits lietotājs ar pietiekamām tiesībām.
mysql -u root -pshellIzveidojiet jaunu testa datu bāzi vienā no klastera mezgliem:
CREATE DATABASE test_db;sqlPiesakieties citos mezglos un pārbaudiet, vai testa datu bāze ir pieejama:
SHOW DATABASES;sqlTesta datu bāze jāparādās datu bāzu sarakstā:
+-------------------------------+
| Database |
+-------------------------------+
| information_schema |
| mysql |
| performance_schema |
| test_db |
| sys |
+------------------------------+sqlPievienojiet jaunu testa tabulu testa datu bāzei:
USE test_db;
CREATE TABLE test_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);sqlIevadiet dažus testa datus testa tabulas name ailē:
INSERT INTO test_table (name) VALUES ('Alice'), ('Bob'), ('Charlie');sqlPārbaudiet citus mezglus, lai redzētu, vai testa tabula un ievadītie dati ir pārnesti:
USE test_db;
SELECT * FROM test_table;sqlRezultāts parāda cilvēku sarakstu ar viņu vārdiem un identifikācijas numuriem:
+----+-----------+
| id | name |
+----+-----------+
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
+----+----------+sqlLai atjauninātu datu ierakstu testa tabulā:
UPDATE test_table SET name = 'David' WHERE name = 'Alice';sqlMēģiniet dzēst datu ierakstu:
DELETE FROM test_table WHERE name = 'Bob';sqlPārbaudiet citus mezglus, lai redzētu, vai atjauninājumi un dzēšanas ir replikēti:
SELECT * FROM test_table;sqlIzmaiņas veiksmīgi parādās katrā mezglā:
+----+------------+
| id | name |
+----+-----------+
| 1 | David |
| 3 | Charlie |
+----+-----------+sql