MariaDB Galera -klusterin määrittäminen Ubuntu 20.04:ssa
MariaDB-klusterin määrittäminen Galera Clusterin avulla parantaa tietokannan luotettavuutta ja yksinkertaistaa sen skaalausta. Opetusohjelmassamme näytämme, kuinka Galera-klusteri asennetaan Ubuntu 20.04:ään.
Galera Cluster MariaDB:n vaatimukset
MariaDB Galera -klusterin asentaminen Ubuntu 20.04:ään edellyttää seuraavien vaatimusten täyttymistä:
- Useita palvelimia: Klusterin rakentamiseen tarvitaan vähintään kolme palvelinta tai virtuaalikoneita. Kaikkien palvelimien tulee olla samassa verkossa.
- Juurioikeudet: Tarvitset pääkäyttäjän oikeudet tai vähintään järjestelmänvalvojan oikeudet palvelimilla.
Galera Cluster MariaDB:n asennus Ubuntu 20.04:ään vaihe vaiheelta
MariaDB Galera -klusteri on käytännöllinen tietokantaratkaisu, joka tarjoaa korkean käytettävyyden, tietojen eheyden ja skaalautuvuuden vaativille sovelluksille. Tässä vaiheittaisessa oppaassa opastamme sinut MariaDB Galera -klusterin asennuksessa Ubuntu 20.04 -käyttöjärjestelmään. Ennen kuin aloitat, varmista, että sinulla on vähintään kolme palvelinta tai virtuaalikoneita klusterin asentamista varten.
Vaihe 1: Päivitä paketit
Sinun tulee ensin päivittää Ubuntu-järjestelmäsi uusimpaan versioon. Tämä on välttämätöntä, jotta sinulla on käytettävissäsi ajantasaiset paketit ja tietoturvapäivitykset.
Avaa terminaali ja suorita seuraava komento pakettilähteiden päivittämiseksi:
sudo apt updateshellAsenna kaikki saatavilla olevat päivitykset:
sudo apt upgrade -yshellSuosittelemme myös vanhentuneiden tai käyttämättömien pakettien poistamista palvelimien puhdistamiseksi:
sudo apt autoremove -yshellVaihe 2: Asenna MariaDB palvelimille
Asenna nyt MariaDB kaikkiin palvelimiisi. Versiosta 10.1 lähtien Galera-paketit ovat mukana MariaDB-palvelimissa.
sudo apt install mariadb-servershellAsennuksen jälkeen voit käynnistää MariaDB-palvelun:
sudo systemctl start mariadbshellKäytä seuraavaa komentoa, jotta MariaDB aktivoituu automaattisesti joka kerta, kun järjestelmä käynnistetään uudelleen:
sudo systemctl enable mariadbshellTarkista, onko MariaDB käynnissä:
sudo systemctl status mariadbshellSinun tulee myös tehdä joitakin perusturvallisuusasetuksia ja määrittää tietokanta. Käynnistä tätä varten asennusvelho:
sudo mysql_secure_installationshellOhjattu toiminto opastaa sinut vaiheiden läpi, kuten juurisalasanan asettaminen, nimettömien käyttäjien poistaminen tai testitietokannan poistaminen.
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] YshellSkripti pyytää ensin nykyisen pääkäyttäjän salasanan. Jos asennat MariaDB:n Ubuntu 20.04:ään ensimmäistä kertaa, paina vain Enter-näppäintä ja kirjoita sitten uusi salasana.
Vaihe 3: Määritä Galera Cluster MariaDB -solmut
Luo cnf -tiedosto hakemistoon /etc/mysql/conf.d jokaisessa solmussa Galera-spesifisten asetusten määrittelemiseksi.
nano /etc/mysql/conf.d/galera.cnfshellTämä tiedosto sisältää yleisiä tietokanta-asetuksia, kuten binäärisen protokollan muodon ja oletustallennusmoottorin. Se sisältää myös Galera-klusterin asetukset, kuten klusterin nimen ja osoitteen.
Lisää seuraavat rivit ensimmäiseen solmuun:
[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- Yleiset tietokanta-asetukset: Näihin kuuluvat esimerkiksi asetukset
binlog_format=ROW(binaarilokien muoto) jadefault-storage-engine=innodb(oletustallennusmoottori). - Galera-palveluntarjoajan kokoonpano: Asetuksia kuten
wsrep_on=ONkäytetään Galera-replikoinnin ottamiseen käyttöön jawsrep_provider=/usr/lib/galera/libgalera_smm.soGalera-kirjaston polun määrittämiseen. - Galera-klusterin konfigurointi: Tähän kuuluvat klusterin nimi (
wsrep_cluster_name) ja klusterin osoite (wsrep_cluster_address), joka sisältää klusterin solmujen IP-osoitteet tai isäntänimet. - Galera-synkronointikokoonpano: Määrittää State Snapshot Transfer (SST) -menetelmän, esim.
wsrep_sst_method=rsync. - Galera-solmun konfigurointi: Määrittää nykyisen solmun IP-osoitteen tai isäntänimen (
wsrep_node_address) ja solmun nimen (wsrep_node_name).
Kun olet tallentanut tiedoston, luo toinen tiedosto toiselle solmulle:
[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"shellJatka nyt viimeisellä solmulla:
[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"shellVaihe 4: Muuta palvelimien palomuuria
Koska solmut kommunikoivat keskenään tiettyjen porttien kautta, sinun on muutettava palomuurin asetuksia.
Avaa seuraavat portit palomuurissasi:
- Portti 3306: Tämä on MariaDB:n vakioportti. Sitä käytetään tietokantaviestintään ja -pyyntöihin.
- Galera-portit: Vakioportin 3306 lisäksi Galera käyttää myös muita portteja solmujen väliseen sisäiseen viestintään. Galera-porttien vakioväli on yleensä 4567, 4568 ja 4444 State Snapshot Transfer (SST) -toiminnolle.
Voit määrittää palomuuriasetukset Ubuntu-palvelimellasi seuraavalla komennolla:
sudo ufw allow 3306,4567,4568,4444/tcp
sudo ufw allow 4567/udpshellVaihe 5: Käynnistä Galera Cluster MariaDB
Pysäytä MariaDB-palvelu, jos se on jo käynnissä:
sudo systemctl stop mariadbshellTämä komento käynnistää MariaDB-palvelimen ja alustaa uuden Galera-klusterin ensimmäisessä solmussa:
sudo galera_new_clustershellTarkista klusterin solmujen lukumäärä:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellSinun pitäisi saada seuraava tulos:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 1 |
+--------------------------+------------ -+shellEnsimmäinen solmu käynnistyi onnistuneesti.
Aktivoi toinen solmu:
systemctl start mariadbshellTarkista, onko solmujen määrä lisääntynyt:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellKonsolissa näemme:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 2 |
+--------------------------+--------------+shellNyt aloitamme kolmannen solmun:
systemctl start mariadbshellTarkista, toimiiko solmu oikein:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"shellKlusterissa pitäisi nyt olla kolme solmua:
+---------------------------+-------------+
| Variable_name | Value |
+--------------------------+--------------+
| wsrep_cluster_size | 3 |
+--------------------------+------------ -+shellVaihe 6: Testaa replikointi
Varmista, että voit muodostaa yhteyden kaikkiin klusterin solmuihin. Kirjaudu MariaDB-asiakasohjelmalla sisään pääkäyttäjänä tai toisena käyttäjänä, jolla on riittävät oikeudet.
mysql -u root -pshellLuo uusi testitietokanta johonkin klusterin solmuista:
CREATE DATABASE test_db;sqlKirjaudu muihin solmuihin ja tarkista, onko testitietokanta käytettävissä:
SHOW DATABASES;sqlTestitietokanta pitäisi näkyä tietokantojen luettelossa:
+-------------------------------+
| Database |
+-------------------------------+
| information_schema |
| mysql |
| performance_schema |
| test_db |
| sys |
+------------------------------+sqlLisää uusi testitaulukko testitietokantaan:
USE test_db;
CREATE TABLE test_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);sqlSyötä testitietoja testitaulukon sarakkeeseen name:
INSERT INTO test_table (name) VALUES ('Alice'), ('Bob'), ('Charlie');sqlTarkista muista solmuista, onko testitaulukko ja lisätty data siirretty:
USE test_db;
SELECT * FROM test_table;sqlTuloksena näkyy luettelo henkilöistä heidän nimineen ja tunnuksineen:
+----+-----------+
| id | name |
+----+-----------+
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
+----+----------+sqlTestitaulukon tietueen päivittäminen:
UPDATE test_table SET name = 'David' WHERE name = 'Alice';sqlYritä poistaa tietue:
DELETE FROM test_table WHERE name = 'Bob';sqlTarkista muista solmuista, onko päivitykset ja poistot replikoitu:
SELECT * FROM test_table;sqlMuutokset näkyvät onnistuneesti jokaisessa solmussa:
+----+------------+
| id | name |
+----+-----------+
| 1 | David |
| 3 | Charlie |
+----+-----------+sql