---
# System prepended metadata

title: Panduan Instalasi MariaDB Galera Cluster di Ubuntu 18.04
tags: [Public]

---

## 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!**