MariaDB Galera “Cluster” için geliştiştirilmiş veritabanı aracıdır. Verileriniz 3 sunucuda da eşitlenir. 3 sunucu da okuma-yazma yapabilir. Daha fazla detay için bu bağlantıya göz atabilirsiniz.
MariaDB Galera sadece InnoDB storage engine desteklemektedir.
Bu işlemler 3 adet Ubuntu 20.04 sunucu üzerinde yapılacaktır. İlk olarak “Maria-DB Server” kurulumunu yapalım.
apt-get install mariadb-server -y
Servisi başlatalım.
systemctl start mariadb
Servisi kontrol edelim.
systemctl status mariadb
MySQL güvenlik adımlarını sağlamak için aşağıdaki komutu terminalde doğrudan çalıştırın. Bu komut dizesinde root şifrenizi de belirleyeceksiniz.
mysql_secure_installation
Cevaplarınız aşağıdaki gibi olmalıdır.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] n
... skipping.
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Conf dosyasını açalım ve içerisine ekleyelim. Config’i kendinize göre düzenleyin.
#Server -1
nano /etc/mysql/conf.d/galera.cnf
[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.0.0.10,10.0.0.11,10.0.0.12"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="10.0.0.10"
wsrep_node_name="mariadb01"
#Server -2
nano /etc/mysql/conf.d/galera.cnf
[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.0.0.10,10.0.0.11,10.0.0.12"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="10.0.0.11"
wsrep_node_name="mariadb02"
#Server -3
nano /etc/mysql/conf.d/galera.cnf
[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.0.0.10,10.0.0.11,10.0.0.12"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="10.0.0.12"
wsrep_node_name="mariadb03"
Config ayarlarından sonra MariaDB’yi 3 sunucumuzda da durduralım.
systemctl stop mariadb
Servisi kontrol edelim.
systemctl status mariadb
Şimdi ilk sunucumuzda aşağıdaki komutu çalıştıralım.
galera_new_cluster
Cluster durumunu kontrol edelim.
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 1 |
+--------------------+-------+
İkinci sunucumuzda (Server -2) MariaDB’yi başlatalım.
systemctl start mariadb
Tekrar Cluster durumunu kontrol edelim.
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 2 |
+--------------------+-------+
Üçüncü sunucumuzda (Server -3) MariaDB’yi başlatalım.
systemctl start mariadb
Son kez Cluster durumunu kontrol edelim.
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 3 |
+--------------------+-------+
Eğer reboot attıktan sonra MySQL servisi çalışmazsa ve bu hatayı alıyorsanız “[ERROR] WSREP: failed to open gcomm backend connection: 110: failed to reach primary view: 110 (Connection timed out)” aşağıdaki komutu uygulayın.
sed -i "/safe_to_bootstrap/s/0/1/" /var/lib/mysql/grastate.dat
Ardından aşağıdaki komutu ilk sunucuda (Server -1) tekrar yazın.
galera_new_cluster
Diğer sunucularda (Server 2 ve 3) ise aşağıdaki komutları çalıştırın.
sed -i "/safe_to_bootstrap/s/0/1/" /var/lib/mysql/grastate.dat
service mysqld restart