• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Install dan Konfigurasi MariaDB Galera Cluster di Ubuntu 20.04

Last Updated on 25 July 2020 By tommy 1 Comment

Membangun cluster MariaDB/MySQL kita bisa menggunakan Galera, Galera sudah termasuk dalam paket instalasi MariaDB di Ubuntu 20.04 jadi tidak perlu menginstall paket tambahan. Beberapa fitur Galera cluster

– True Multi-master, Active-Active Cluster Read and write to any node at any time.
– Synchronous Replication No slave lag, no data is lost at node crash.
– Tightly Coupled All nodes hold the same state. No diverged data between nodes allowed.
– Multi-threaded Slave For better performance. For any workload.
– No Master-Slave Failover Operations or Use of VIP.
– Hot Standby No downtime during failover (since there is no failover).
– Automatic Node Provisioning No need to manually back up the database and copy it to the new node.
– Supports InnoDB.
– Transparent to Applications Required no (or minimal changes) to the application.
– No Read and Write Splitting Needed.
– Easy to Use and Deploy

Server yang akan digunakan

192.168.148.11  DB-HAPROXY
192.168.163.201 DB-CLUSTER-1
192.168.164.27  DB-CLUSTER-2
192.168.148.92  DB-CLUSTER-3

Update System

Update system anda ke update paling baru yang tersedia, jalankan di semua server

apt update; apt upgrade -y

Setting Hostname Server

Agar masing-masing server mudah dikenali, setting hostname masing-masing server

# server HaProxy
hostnamectl set-hostname --static DB-HAPROXY
# server 1
hostnamectl set-hostname --static DB-CLUSTER-1
# server 2
hostnamectl set-hostname --static DB-CLUSTER-2
# server 3
hostnamectl set-hostname --static DB-CLUSTER-3

di semua jalankan perintah ini untuk menambah mapping IP tersebut ke hostname

echo '192.168.148.11  DB-HAPROXY
192.168.163.201 DB-CLUSTER-1
192.168.164.27  DB-CLUSTER-2
192.168.148.92  DB-CLUSTER-3' >> /etc/hosts

matikan services apparmor

systemctl stop apparmor
systemctl disable apparmor

ubah file permission /tmp agar bisa ditulis oleh MariaDB.

chmod 777 /tmp

Install MariaDB Server

Di ketiga server tersebut jalankan perintah berikut ini untuk menginstall MySQL/MariaDB 10.3

apt install mariadb-server -y

di Ubuntu services MariaDB otomatis dijalankan, karena kita masih butuh untuk konfigurasinya, matikan service nya terlebih dahulu

systemctl stop mariadb

Untuk konfigurasi cluster berikut ini sesuaikan IP address dengan IP Server database yang anda miliki.

Server Database 1 : DB-CLUSTER-1

Konfigurasi Galera cluster akan disimpan di /etc/mysql/mariadb.conf.d/50-galera.cnf, buat file tersebut lalu isi dengan

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=192.168.163.201
 
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
 
wsrep_cluster_name="dbcluster"
wsrep_cluster_address="gcomm://192.168.163.201,192.168.164.27,192.168.148.92"
 
wsrep_sst_method=rsync
 
wsrep_node_address="192.168.163.201"
wsrep_node_name="DB-CLUSTER-1"

untuk binding IP address kita setting di 50-galera.cnf, jadi bind di 50-server.cnf dinonaktifkan

sed -i 's/bind-address/#bind-address/g'  /etc/mysql/mariadb.conf.d/50-server.cnf

Cluster database ini akan dijalankan dari DB-CLUSTER-1 dengan perintah galera_new_cluster. Setelah menjalankan perintah tersebut cek status cluster anda.

mysql  -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

outputnya

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

karena kita baru menjalankan 1 server cluster, jadi hanya muncul 1 di ukuran clusternya.

Buat user haproxy, user ini nanti dibuat untuk mengecek status database.

CREATE USER 'haproxy'@'192.168.148.11';

ganti 192.168.148.11 dengan IP HaProxy.

Server Database 2 : DB-CLUSTER-2

Konfigurasi Galera cluster akan disimpan di /etc/mysql/mariadb.conf.d/50-galera.cnf, buat file tersebut lalu isi dengan

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=192.168.164.27
 
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
 
wsrep_cluster_name="dbcluster"
wsrep_cluster_address="gcomm://192.168.163.201,192.168.164.27,192.168.148.92"
 
wsrep_sst_method=rsync
 
wsrep_node_address="192.168.164.27"
wsrep_node_name="DB-CLUSTER-2"

untuk binding IP address kita setting di 50-galera.cnf, jadi bind di 50-server.cnf dinonaktifkan

sed -i 's/bind-address/#bind-address/g'  /etc/mysql/mariadb.conf.d/50-server.cnf

Jalankan services mariadb

systemctl start mariadb

Setelah menjalankan perintah tersebut cek status cluster anda.

mysql  -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

outputnya

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

sekarang sudah keliatan ukuran cluster menjadi 2.

Server Database 3 : DB-CLUSTER-3

Konfigurasi Galera cluster akan disimpan di /etc/mysql/mariadb.conf.d/50-galera.cnf, buat file tersebut lalu isi dengan

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=192.168.148.92
 
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
 
wsrep_cluster_name="dbcluster"
wsrep_cluster_address="gcomm://192.168.163.201,192.168.164.27,192.168.148.92"
 
wsrep_sst_method=rsync
 
wsrep_node_address="192.168.148.92"
wsrep_node_name="DB-CLUSTER-3"

untuk binding IP address kita setting di 50-galera.cnf, jadi bind di 50-server.cnf dinonaktifkan

sed -i 's/bind-address/#bind-address/g'  /etc/mysql/mariadb.conf.d/50-server.cnf

Jalankan services mariadb

systemctl start mariadb

Setelah menjalankan perintah tersebut cek status cluster anda.

mysql  -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

outputnya

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

ukuran cluster sudah menjadi 3, sesuai dengan jumlah server yang kita alokasikan.

Testing Query Cluster

Untuk mengecek apakah cluster kita sudah bisa saling sinkronisasi data, buat database baru untuk testing. Login ke mysql/mariadb di CLUSTER-DB-1

mysql

lalu eksekusi query dibawah ini

CREATE DATABASE dbpesan;
CREATE TABLE dbpesan.pesan_singkat ( `id` INT NOT NULL AUTO_INCREMENT , `pesan` TEXT NOT NULL , PRIMARY KEY (`id`));
INSERT INTO dbpesan.pesan_singkat (`id`, `pesan`) VALUES (1, 'pesan pertama');
INSERT INTO dbpesan.pesan_singkat (`id`, `pesan`) VALUES (2, 'pesan kedua');
INSERT INTO dbpesan.pesan_singkat (`id`, `pesan`) VALUES (3, 'pesan ketiga');

dari ketiga server cek user hasil querynya

SELECT * FROM dbpesan.pesan_singkat;

keluaran query diatas

+----+---------------+
| id | pesan         |
+----+---------------+
|  1 | pesan pertama |
|  2 | pesan kedua   |
|  3 | pesan ketiga  |
+----+---------------+
3 rows in set (0.001 sec)

HaProxy Galera Cluster

Sampai disini kita belum bisa membagi rata akses ke cluster database yang telah kita buat, untuk itu kita akan menggunakan HaProxy sebagai load balancer

Install HaProxy

apt install haproxy -y

Di konfigurasi HaProxy /etc/haproxy/haproxy.cfg tambahkan dibagian paling bawah

# statistik
listen stats
    bind :8080
    mode http
    stats enable
    stats hide-version
    stats realm Haproxy\ Statistics
    stats uri /
    stats auth jaranguda:WRmfp7Csprzq4NMLJbJsrhxLjPcmtX
 
listen galera_cluster
    bind 192.168.148.11:3306
    balance source
    mode tcp
    option tcpka
    option mysql-check user haproxy
    option tcplog
 
    server DB-CLUSTER-1 DB-CLUSTER-1:3306  check weight 1
    server DB-CLUSTER-2 DB-CLUSTER-2:3306  check weight 1
    server DB-CLUSTER-3 DB-CLUSTER-3:3306  check weight 1

listen stats tersebut untuk melihat status Haproxy.
haproxy database status
192.168.148.11 ganti dengan IP HaProxy.

aktifkan haproxy waktu booting

systemctl enable haproxy

jalankan service haproxy

systemctl restart haproxy

bila anda membuat user baru di cluster mariadb tambahkan IP HaProxy untuk hostnamenya, contoh

CREATE DATABASE wordpress
GRANT ALL PRIVILEGES ON userwp.* TO "wordpress"@"192.168.148.11" IDENTIFIED BY "pxwLzqdLrFKTphzpH7";

jadi nanti aplikasi akan mengakses database lewat Haproxy.

Tulisan menarik lainnya

  • Install dan Konfigurasi MariaDB Galera Cluster di Debian 10

    Saat website/aplikasi anda menjadi populer, kebutuhan database juga meningkat. Selain upgrade hardware database MySQL alternative…

  • Install dan Konfigurasi Deluge Torrent di Fedora

    Install deluge su -c "dnf install deluge deluge-daemon deluge-web deluge-gtk" dari console, aktifkan remote access…

  • Install nginx HHVM MariaDB WordPress di Debian 8 Jessie

    Sebelum menginstall apapun di Debian, sebaiknya lakukan terlebih dahulu update dan upgrade sistem anda. apt-get…

  • Install dig di Debian

    Tool dig mempermudah untuk mengecek DNS record melalui terminal Linux. bash: dig: command not found…

Filed Under: Linux

Reader Interactions

Comments

  1. Awal Pratama Arjuna says

    24 August 2021 at 20:41

    saya mempunyai beberapa masalah dalam konfgurasinya, apakah saya bisa menghubungi anda langsung ? saya dalam pross pengerjaan Tugas Akhir

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Pencarian

Tanya Jawab tentang DevOps SRE CPE, gabung di https://t.me/devopsindonesia

Terbaru

  • Cara Mengganti Port Screen Sharing macOS
  • Cara Menonaktifkan Pager di macOS
  • Cara Mengupdate Nama Apple silicon-as-a-Service Scaleway
  • Cara Force Delete Namespace di Kubernetes
  • Install PHP MariaDB di Mac Monterey

Komentar

  • mazda on Tutorial Lengkap Install Mail Server Postfix Dovecot MariaDB di CentOS 7
  • adi on Menggunakan Mikrotik Sebagai SSH Client
  • aris u on Solusi Simple Queue Mikrotik Tidak Berjalan
  • Bowo on Cara Mematikan SSID Molecool Balifiber
  • aris on Solusi Simple Queue Mikrotik Tidak Berjalan

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.1m views
  • Password Terbaru ZTE F609 Indihome 784.5k views
  • Password Superadmin Huawei HG8245A 318.1k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 273k views
  • Cara Setting Wireless ZTE F609 Indihome 257.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.8k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.8k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 153.1k views
  • Cara Reset Password ZTE F609 Indihome 147.5k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 113.5k views

Kategori

  • Delphi
  • dll
  • Gambas
  • Internet
  • Java
  • Lazarus
  • Linux
  • PHP
  • Review
  • Teknologi

Sponsor

kadal.id
carakami.com
kuotabisa.com
Untuk jadi sponsor, hubungi kita lewat halaman sponsor
© 2021. Jaranguda
  • Linux
  • PHP
  • Internet
  • Teknologi
  • Delphi
  • Gambas
  • Java