
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 :
- Spek Server sudah tidak bisa di upgrade lagi
- Pengguna yang mengakses terlalu banyak
- 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.
Comments