Breaking News

Cara Install dan Konfigurasi High Avaibility Mysql Menggunakan Debian 9 dan MariaDB 10.3

Secara default jika melakukan instalasi Debian 9 maka database yang terinstall adalah MariaDB. Perlu diketahui MariaDB adalah versi open source di bawah lisensi GPL yang dikembangkan oleh  Michael "Monty" Widenius founder dari Mysql AB.

MariaDB server memiliki fitur untuk membuat Mysql menjadi HA ( High Avaibility ), dimana database MariaDB bisa melakukan sinkronisasi ke beberapa server master to master. Fitur ini dikenal dengan nama MariaDB Galera Cluster. Hanya bisa jalan di sistem operasi Linux dan hanya mendukung XtraDB/InnoDB storage engines. Meskipun MyISAM juga didukung namun masih dalam tahap eksperimen.

Sejak MariaDB versi 10.1,  wsrep API untuk Galera Cluster  sudah digabungkan ke dalam instalasi mariaDB server.

MariaDB Galera Cluster

Replikasi Synchronous
  • Topologi Active-active multi-master 
  • Baca dan tulis ke semua cluster node 
  • Automatic membership control, failed nodes drop from the cluster
  • Automatic node joining
  • True parallel replication, on row level
  • Direct client connections, native MariaDB look & feel
Keunggulan dari solusi clustering MariaDB ini adalah
  • Tidak ada jeda saat join cluster baru
  • Tidak ada traksaksi yang hilang
  • Skalabilitas baca dan tulis
  • Latensi client yang kecil 

Tahapan install MariaDB Galera Cluster

Asumsi : menggunakan 3 server yang sudah terinstall Debian 9 dan MariaDB 10.3 dengan nama Cluster_1 ( 10.10.10.1), Cluster_2 (10.10.10.2) dan Cluster_3 (10.10.10.3)


sudo apt-get install software-properties-common dirmngr
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.biznetgio.com/mariadb/repo/10.3/debian stretch main'

sudo apt-get update
sudo apt-get install mariadb-server

Setelah MariaDB terinstall, lakukan sebagai berikut pada cluster ke-1:

nano /etc/mysql/conf.d/galera.cnf

[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/lib/galera/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="mysql_cluster"
wsrep_cluster_address="gcomm://10.10.10.1,10.10.1.2,10.10.1.3"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="10.10.10.1"
wsrep_node_name="cluster_1"

Lakukan hal yang sama pada cluster ke-2 dan cluster ke-3

Langkah berikutnya adalah menyamakan isi debian.cnf untuk semua cluster dengan mengambil cluster_1 sebagai master utamanya. Copy  /etc/mysql/debian.cnf, lakukan duplikasi ke cluster_2 dan cluster_3

nano /etc/mysql/debian.cnf

[client]
host     = localhost
user     = debian-sys-maint
password = RBqBJyvetkuIEA9y
socket   = /var/run/mysqld/mysqld.sock

[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = RBqBJyvetkuIEA9y
socket   = /var/run/mysqld/mysqld.sock

basedir  = /usr


Terakhir, jika tidak ada error yang muncul lakukan pekerjaan sebagai berikut pada cluster_1 (10.10.10.1) :

galera_new_cluster
systemctl start mysql.service

Ingat command galera_new_cluster hanya ditujukan untuk memulai sebagai cluster pertama. Selanjutnya untuk cluster_2 dan cluster_3 lakukan start mysql seperti biasa.

systemctl start mysql


Cek status mysql :

systemctl status mysql.service -l

Lakukan pengecekan apakah cluster sudah berjalan dengan baik atau tidak dengan masuk ke root mysql

mysql -u root -p
SHOW STATUS LIKE 'wsrep_cluster_size';

show status like 'wsrep%';



MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_cluster_size';
+------------------------+-------+
| Variable_name       | Value |
+------------------------+-------+
| wsrep_cluster_size | 3        |
+------------------------+-------+
1 row in set (0.001 sec)



Posting Komentar

0 Komentar