Konfigurasi MariaDB Galera Cluster Di Linux Centos 7

Halo semuanya saya akan berbagi artikel bagaimana cara konfigurasi MariaDB Galera cluster, sebelum kita memulai konfigurasi ada beberapa hal yang harus kita ketahui mengapa kita buat mariadb galera cluster dan apa tujuan nya ?

Kita samakan persepsi dulu bahwa disini database cluster digunakan jika beberapa hal dibawah ini kejadian :

  1. Spek Server sudah tidak bisa di upgrade lagi
  2. Pengguna yang mengakses terlalu banyak
  3. Sudah dianalisa Query yang buat penuh

Jika beberapa hal diatas kejadian maka mariadb galera cluster ini bisa menjadi solusi, jadi kenapa disebut mariadb galera cluster ? MariaDB adalah database Engine nya sedangkan Galera Cluster adalah Tool's Cluster Databasenya. Didalam artikel kali ini saya mempraktekannya menggunakan Linux Centos 7 yang dimana semua server saya samakan varian linux nya untuk mempermudah dalam konfigurasi. Mari kita memulai konfigurasinya, untuk konfigurasi Server Load Balance ini akan kita setup belakangan saja. 

SETUP SERVER DATABASE 1 DAN DATABASE 2

1. Tambahkan Repo MariaDB

vim /etc/yum.repos.d/mariadb.repo

2. isikan dengan repo berikut ini :

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.9/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

3. Jika proses installasi tidak berjalan mulus, kalo saya pas proses installasi ada erros kurang lebih output errornya seperti ini :

Error: Package: MariaDB-server-10.9.4-1.el7.centos.x86_64 (mariadb)
           Requires: pv
sudo yum install rsync

Cara solving nya bisa cek LINK https://docs.fedoraproject.org/en-US/epel/ yang dimana install epel-release dengan menjalankan syntak berikut ini :

yum install epel-release

4. Aktifkan Repository yang telah kita input tadi.

sudo yum makecache --disablerepo='*' --enablerepo='mariadb'

5. Setelah diaktifkan kita mulai installasi Database MariaDB

sudo yum install MariaDB-server MariaDB-client

 6. Jalankan MariaDB

sudo systemctl start mariadb

7. Enable autostart mariadb supaya ketika server down maka autostart

sudo systemctl enable mariadb

8. Dari mariadb 10.4 keatas kita bisa melakukan login tanpa memasukan generate password, kita login ke databasenya.

sudo mysql -uroot

9. Set Password MariaDB

set password = password("bukanrahasia");

 10. Install Package RSYN karena cluster galera yang saya konfigurasi menggunakan rsync untuk auto syncron databasenya.

sudo yum install rsync

11. Konfigurasi Galera untuk server database1

sudo vi /etc/my.cnf.d/galera.cnf

12. Contoh Konfigurasi cluster untuk database1

[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/lib64/galera-4/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="mariadb_cluster"
wsrep_cluster_address="gcomm://192.168.10.19,192.168.10.20"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.10.19"
wsrep_node_name="node1"

13. Konfigurasi Galera untuk server database2

sudo vi /etc/my.cnf.d/galera.cnf

14. Isikan Konfigurasi untuk server database2

[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/lib64/galera-4/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="mariadb_cluster"
wsrep_cluster_address="gcomm://192.168.10.19,192.168.10.20"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.10.20"
wsrep_node_name="node2"

15. Stop service mariadb disemua server

sudo systemctl stop mariadb

16. Jalankan galera cluster di server database1.

sudo galera_new_cluster

17. Jalankan service mariadb di server database2

sudo systemctl start mariadb

Secara praktik harusnya sudah selesai, namun jika menemukan kendala ketika ditest menjalankan systemctl start mariadb dan tidak bisa start untuk service mariadbnya contoh ada output seperti ini :

Dec 01 20:24:27 database2 mariadbd[1268]: at /home/buildbot/buildbot/build/gcomm/src/pc.cpp:connect():160
Dec 01 20:24:27 database2 mariadbd[1268]: 2022-12-01 20:24:27 0 [ERROR] WSREP: /home/buildbot/buildbot/build/gcs/src/gcs_core.cpp:gcs_core_open():222: Failed to open backend connection: -110 (Connection timed out)
Dec 01 20:24:27 database2 mariadbd[1268]: 2022-12-01 20:24:27 0 [ERROR] WSREP: /home/buildbot/buildbot/build/gcs/src/gcs.cpp:gcs_open():1670: Failed to open channel 'mariadb_cluster' at 'gcomm://192.168.10.19,192.168....ection timed out)
Dec 01 20:24:27 database2 mariadbd[1268]: 2022-12-01 20:24:27 0 [ERROR] WSREP: gcs connect failed: Connection timed out
Dec 01 20:24:27 database2 mariadbd[1268]: 2022-12-01 20:24:27 0 [ERROR] WSREP: wsrep::connect(gcomm://192.168.10.19,192.168.10.20) failed: 7
Dec 01 20:24:27 database2 mariadbd[1268]: 2022-12-01 20:24:27 0 [ERROR] Aborting

Cara problem solving yang saya lakukan, 

  • Disable Selinux baik diserver database1 & server database2
  • Disable firewall baik diserver database1 & server database2

Demikianlah artikelnya, semoga bermanfaat.

 

Related Articles

Comments