Untuk membangun cluster MariaDB/MySQL kita bisa menggunakan Galera, Galera sudah termasuk dalam paket instalasi MariaDB di Ubuntu 20. 04 sehingga tidak perlu menginstal paket tambahan. Beberapa fitur klaster Galera
– True Multi-master, Active-Active Cluster Baca dan tulis ke node mana saja kapan saja
– Replikasi Sinkron Tidak ada slave lag, tidak ada data yang hilang saat node crash
– Tightly Coupled Semua node memiliki status yang sama. Tidak ada data yang menyimpang antar node yang diizinkan
– Multi-threaded Slave Untuk kinerja yang lebih baik. Untuk beban kerja apa pun
– Tidak Ada Operasi Failover Master-Budak atau Penggunaan VIP
– Hot Standby Tidak ada downtime selama failover [karena tidak ada failover]
– Penyedia Node Otomatis Tidak perlu mencadangkan database secara manual dan menyalinnya ke node baru
– Mendukung InnoDB
- Transparan untuk Aplikasi Tidak ada [atau perubahan minimal] yang diperlukan untuk aplikasi
- Tidak Perlu Pemisahan Baca dan Tulis
- Mudah Digunakan dan Diterapkan
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
Perbarui Sistem
Perbarui sistem Anda ke pembaruan terbaru yang tersedia, jalankan di semua server
apt update; apt upgrade -y
_Pengaturan Nama Host Server
Agar setiap server mudah dikenali, atur 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
secara keseluruhan jalankan perintah ini untuk menambahkan pemetaan IP ke nama host
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 layanan apparmor
systemctl stop apparmor systemctl disable apparmor_
ubah file izin
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_2 sehingga dapat ditulis oleh MariaDB
chmod 777 /tmp_
Instal Server MariaDB
Pada ketiga server tersebut jalankan perintah berikut untuk menginstal MySQL/MariaDB 10. 3
apt install mariadb-server -y
di Ubuntu service MariaDB sudah otomatis dijalankan, karena kita masih membutuhkannya untuk konfigurasi, matikan dulu servicenya
systemctl stop mariadb_
Untuk konfigurasi cluster berikut cocokkan alamat IP dengan database IP Server yang anda miliki
Server Basis Data 1. DB-CLUSTER-1
Konfigurasi cluster Galera akan disimpan di
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/hosts3, buat file dan 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 pengikatan alamat IP kami menetapkannya di
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/hosts4, jadi ikat di
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/hosts5 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
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/hosts6. Setelah menjalankan perintah, periksa status cluster Anda
apt update; apt upgrade -y
_0hasil
apt update; apt upgrade -y
_1karena kita baru menjalankan 1 cluster server, jadi hanya 1 yang muncul di ukuran cluster
Buat pengguna
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_7, pengguna ini akan dibuat untuk memeriksa status database
apt update; apt upgrade -y
_2ganti
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_8 dengan IP HaProxy
Server basis data 2. DB-CLUSTER-2
Konfigurasi cluster Galera akan disimpan di
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/hosts3, buat file dan isi dengan
apt update; apt upgrade -y
_3untuk pengikatan alamat IP kami menetapkannya di
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/hosts4, jadi ikat di
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/hosts5 dinonaktifkan
sed -i 's/bind-address/#bind-address/g' /etc/mysql/mariadb.conf.d/50-server.cnf
Jalankan layanan mariadb
apt update; apt upgrade -y
_5Setelah menjalankan perintah, periksa status cluster Anda
apt update; apt upgrade -y
_0hasil
apt update; apt upgrade -y
_7sekarang ukuran cluster tampaknya menjadi 2
Server basis data3. DB-CLUSTER-3
Konfigurasi cluster Galera akan disimpan di
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/hosts3, buat file dan isi dengan
apt update; apt upgrade -y
_8untuk pengikatan alamat IP kami menetapkannya di
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/hosts4, jadi ikat di
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/hosts5 dinonaktifkan
sed -i 's/bind-address/#bind-address/g' /etc/mysql/mariadb.conf.d/50-server.cnf
Jalankan layanan mariadb
apt update; apt upgrade -y
_5Setelah menjalankan perintah, periksa status cluster Anda
apt update; apt upgrade -y
_0hasil
# 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-32
ukuran cluster menjadi 3, sesuai dengan jumlah server yang kami alokasikan
Menguji Kluster Kueri
Untuk memeriksa apakah cluster kami dapat menyinkronkan data satu sama lain, buat database baru untuk pengujian. Masuk ke mysql/mariadb di CLUSTER-DB-1
# 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_3
lalu jalankan kueri di bawah ini
# 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_4
dari ketiga server periksa hasil kueri pengguna
# 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-35
hasil kueri di atas
# 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-36
Kluster HaProxy Galera
Sampai saat ini kami belum bisa membagi akses secara merata ke database cluster yang telah kami buat, untuk itu kami akan menggunakan HaProxy sebagai load balancer
Instal HaProxy
# 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-37
Dalam konfigurasi HaProxy
systemctl stop apparmor systemctl disable apparmor_5 tambahkan di bagian bawah
# 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_8
dengarkan statistik untuk melihat status Haproxy
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/hosts8 ganti dengan HaProxy IP
aktifkan haproxy saat boot
# 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_9
jalankan layanan haproxy
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/hosts0
saat Anda membuat pengguna baru di cluster mariadb, tambahkan IP HaProxy untuk nama host, misalnya
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/hosts1
jadi nantinya aplikasi akan mengakses database melalui Haproxy
Artikel menarik lainnya
Instal dan Konfigurasi MariaDB Galera Cluster di Debian 10
Ketika website/aplikasi Anda semakin populer, kebutuhan akan database juga semakin meningkat. Selain peningkatan perangkat keras dari database alternatif MySQL...
Instal dan Konfigurasikan Deluge Torrent di Fedora
Instal deluge su -c "dnf install deluge deluge-daemon deluge-web deluge-gtk" dari konsol, aktifkan akses jarak jauh...
Instal nginx HHVM MariaDB WordPress di Debian 8 Jessie
Sebelum menginstal apa pun di Debian, Anda harus memperbarui dan memutakhirkan sistem Anda terlebih dahulu. apt-get…