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 -yServisi başlatalım.
systemctl start mariadb
Servisi kontrol edelim.
systemctl status mariadbMySQL 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] yRemove test database and access to it? [Y/n] yReload privilege tables now? [Y/n] yConf 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 mariadbServisi 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 mariadbSon 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.datArdından aşağıdaki komutu ilk sunucuda (Server -1) tekrar yazın.
galera_new_clusterDiğ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.datservice mysqld restart