## Panduan Instalasi MariaDB Galera Cluster di Ubuntu 18.04 Database clustering adalah proses penggabungan beberapa server untuk memastikan ketersediaan tinggi dan replikasi data yang konsisten antar server. **MariaDB Galera** adalah solusi clustering multi-master yang memastikan replikasi data secara real-time ke semua node dalam cluster. Panduan ini akan membantu Anda dalam menginstal dan mengkonfigurasi **MariaDB Galera Cluster** pada Ubuntu 18.04 dengan 3 node. ### Prasyarat - Minimal 2 node (disarankan 3 node untuk keandalan tinggi). - Tiga server **Ubuntu 18.04** dengan hak akses root. - IP Address server: - `galera-db-01`: 172.18.141.166 - `galera-db-02`: 172.18.141.167 - `galera-db-03`: 172.18.141.180 ### Langkah 1 – Instalasi MariaDB Server di Semua Server Tambahkan repository **MariaDB** dan instal **MariaDB** pada ketiga node dengan perintah berikut: ```bash apt-get install software-properties-common apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.5/ubuntu $(lsb_release -cs) main" apt-get update -y apt-get install mariadb-server -y ``` Konfigurasikan kata sandi root **MariaDB** dengan menjalankan `mysql_secure_installation`. ### Langkah 2 – Konfigurasi Setiap Server di Cluster Setiap server **MariaDB** memerlukan konfigurasi khusus agar dapat terhubung sebagai cluster **Galera**. Lakukan konfigurasi berikut pada setiap node. #### Konfigurasi pada Server 1 (galera-db-01) Edit file `/etc/mysql/conf.d/galera.cnf` dan tambahkan konfigurasi: ```ini [mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_name="mariadb_galera_cluster" wsrep_cluster_address="gcomm://172.18.141.166,172.18.141.167,172.18.141.180" wsrep_sst_method=rsync wsrep_node_address="172.18.141.166" wsrep_node_name="galera-db-01" ``` #### Konfigurasi pada Server 2 (galera-db-02) ```ini [mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_name="mariadb_galera_cluster" wsrep_cluster_address="gcomm://172.18.141.166,172.18.141.167,172.18.141.180" wsrep_sst_method=rsync wsrep_node_address="172.18.141.167" wsrep_node_name="galera-db-02" ``` #### Konfigurasi pada Server 3 (galera-db-03) ```ini [mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_name="mariadb_galera_cluster" wsrep_cluster_address="gcomm://172.18.141.166,172.18.141.167,172.18.141.180" wsrep_sst_method=rsync wsrep_node_address="172.18.141.180" wsrep_node_name="galera-db-03" ``` ### Langkah 3 – Inisialisasi Galera Cluster Berhentikan layanan **MariaDB** di semua node: ```bash systemctl stop mariadb ``` Inisialisasi cluster pada **galera-db-01** dengan perintah: ```bash galera_new_cluster ``` Verifikasi **node pertama** dengan: ```bash mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';" ``` Nyalakan **MariaDB** di **galera-db-02** dan **galera-db-03**: ```bash systemctl start mariadb ``` Verifikasi bahwa ketiga node telah bergabung ke cluster dengan perintah yang sama. ### Langkah 4 – Pengujian Replikasi Cluster Buat database pada **galera-db-01**: ```bash mysql -u root -p create database galera_test; exit; ``` Periksa replikasi database pada **galera-db-02** dan **galera-db-03**: ```bash mysql -u root -p -e "SHOW DATABASES;" ``` Database **galera_test** harus muncul di semua node. ### Langkah 6 – Verifikasi Cluster Cek ukuran cluster di setiap node dengan menjalankan perintah berikut: ```bash mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';" ``` Anda akan melihat output seperti ini: ``` +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | wsrep_cluster_size| 3 | +-------------------+-------+ ``` Pengujian replikasi dapat dilakukan dengan membuat database di salah satu node: ```bash CREATE DATABASE test_cluster; ``` Lalu, cek database tersebut di node lain untuk memastikan replikasi berjalan baik: ```bash mysql -u root -p -e "SHOW DATABASES;" ``` ### Langkah 7 – Penanganan Firewall Pastikan bahwa port berikut terbuka di firewall untuk memastikan komunikasi antar node **Galera**: - **Port 3306**: MySQL/MariaDB - **Port 4567**: Galera replication traffic - **Port 4568**: Galera Incremental State Transfer (IST) - **Port 4444**: Galera State Snapshot Transfer (SST) ### Langkah 8 – Troubleshooting Jika terjadi masalah, Anda dapat melihat status cluster dan node dengan menjalankan: ```bash mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_%';" ``` Informasi seperti status sinkronisasi, ukuran cluster, dan apakah node siap menerima query akan ditampilkan. Misalnya, Anda dapat melihat apakah **wsrep_ready** bernilai **ON**, yang berarti node siap digunakan. ### Kesimpulan 🎉 **Selamat!** Anda telah berhasil menginstal dan mengkonfigurasi MariaDB Galera Cluster di Ubuntu 18.04. 🎊 Dengan pengaturan ini, Anda mendapatkan replikasi data yang kuat antar node, memastikan database Anda selalu tersedia dan sinkron. ✨ Semua langkah dari instalasi hingga pengujian telah sukses dilakukan, dan cluster telah berjalan dengan baik. 🥳🥇 --- **Semoga sukses terus dengan proyek Anda!**