Bu yazımızda Ubuntu 20.04 üzerinden MariaDB Galera multi-master cluster yapısının kurulumunu ve yapılandırmasını yapacağız. Bu işlem için localde açtığımız iki Ubuntu server kullanacağız.
Galera cluster yapısının amacı yüksek erişilebilirlik sağlamaktır. Bir server çöktüğü zaman hemen diğeri devreye girer.
İki serverda da veya cluster yapısını kaç server üzerinde oluşturacaksınız hepsinde MariaDB kurulu olmalıdır.
MariaDB Kurulumu
sudo apt install mariadb-server -y
Varsayılan olarak MariaDB root kullanıcısının parolası yoktur.
mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n] Y Yeni parola oluşturma / n parolasız devam etme
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] Y
Cluster Yapısında Bulunan Serverların Yapılandırılması
Birinci servera bağlanıyoruz ve galera config dosyasını oluşturuyoruz.
vim /etc/mysql/conf.d/galera.cnf
Aşağıdaki satırları dosya içine ekliyoruz. Server IP adreslerini kendinize göre düzenlemeyi unutmayın.
[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://10.1.1.191,10.1.1.192"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="10.1.1.191"
wsrep_node_name="server1"
İkinci servera bağlanıyoruz ve aynı işlemleri yapıyoruz.
vim /etc/mysql/conf.d/galera.cnf
Aşağıdaki satırları ekliyoruz.
[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://10.1.1.191,10.1.1.192"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="10.1.1.192"
wsrep_node_name="server2"
Clusterı başlatmadan önce tüm serverlardaki MariaDB servisleri durdurulmalıdır.
systemctl stop mariadb
Birinci serverdan cluster yapısını başlatıyoruz.
galera_new_cluster
Üstteki komut ile birinci serverı galera cluster yapısına ekledik. Kontrolünü sağlayalım.
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
Enter password:
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 1 |
+--------------------+-------+
İkinci sunucuya bağlanalım ve Mariadb servisini başlatalım.
systemctl start mariadb
Şimdi aşağıdaki komut ile cluster boyutunu tekrar kontrol edelim.
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
Enter password:
İkinci serverın da cluster yapısına katıldığını görüyoruz.
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 2 |
+--------------------+-------+
MariaDB Galera multi-master cluster yapısının kurulumunu tamamladık. Bir serverda yaptığınız işlemlerin (veritabanı oluşturma, tablo ekleme vb.) cluster içerisindeki diğer veritabanlarına yansıyıp yansımadığını test edebilirsiniz.
Teşekkürler…