Replikasi Database MySQL Master-Master pada Ubuntu | Goodpixelpro Tutorial

Goodpixelpro Tutorial –

Pada pembahasan kali ini saya akan coba menjelaskan beberapa replikasi database MySQL dengan metode master-master(kadang disebut aktif-aktif). Singkatnya membuat 2 server database mysql yang saling sinkron sehingga data didalamnya sama.

Alasan menerapkan replikasi pada database server adalah agar ketersediaan database tinggi, jadi ketika salah satu node mati maka ketersediaan database akan tetap ada ditangani oleh node yang masih hidup.

Pada contoh kasus kali ini kita akan menggunakan:
  • Server A : 192.168.0.100
  • Server B : 192.168.0.101

OS : Ubuntu 16.04 Lts (Xenial)

=> Install MySQL
 $sudo apt-get update  $sudo install mysql-server mysql-client -y  

=> Pastikan service mysql dengan status running, dan saran jika ingin menjalankan mysql pada saat boot/server dinyalakan dapat menggunakan
 $sudo systemctl enable mysql

=> Modifikasi konfigurasi MySQL
Pada langkah ini kita dapat menambahkan code-code dibawah pada file “/etc/mysql/my.cnf” atau
membuat baru file konfigurasi pada folder “/etc/mysql/mysqld/conf.d/mysql-rep.cnf”
Pada kasus ini saya membuat file baru pada tiap server

 $sudo vi /etc/mysql/mysql.conf.d/mysql-rep.cnf   

Server A

[mysqld] bind-address = 192.168.0.100 server_id = 1 log_bin = /var/log/mysql/mysql-bin.log log_bin_index = /var/log/mysql/mysql-bin.log.index relay_log = /var/log/mysql/mysql-relay-bin relay_log_index = /var/log/mysql/mysql-relay-bin.index expire_logs_days = 10 max_binlog_size = 100M binlog-format = row log_slave_updates = 1 auto-increment-offset = 1 auto-increment-increment = 2
Server B
[mysqld] bind-address = 192.168.0.101 server_id = 2 log_bin = /var/log/mysql/mysql-bin.log log_bin_index = /var/log/mysql/mysql-bin.log.index relay_log = /var/log/mysql/mysql-relay-bin relay_log_index = /var/log/mysql/mysql-relay-bin.index expire_logs_days = 10 max_binlog_size = 100M binlog-format = row log_slave_updates = 1 auto-increment-offset = 2 auto-increment-increment = 2

Setelah melakukan konfigurasi mysql pada tiap server, restart mysql service.


=> Buat user mysql dan beri spesifik akses
Login mysql untuk setiap server jalankan perintah

 $mysql -u root -p  mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'XXXX' IDENTIFIED BY 'Password'; 

Makna ‘XXXX’ adalah IP/Hostname dari server lawan dan code grant tersebut berfungsi untuk membuat user ‘replication’ serta memiliki akses untuk diakses dari alamat lawan.

Pastikan bahwa user ‘replication’ dapat mengakses mysql server lawan.
$mysql -ureplication -p -h ‘XXXX’ -P 3306

 $mysql -ureplication -p -h 'XXXX' -P 3306

=> Konfigurasi Database Replikasi

– Pada server A login ke mysql dan lihat master status

Informasi master database ini akan digunakan berikutnya pada server lawan.
Pada server B login ke mysql dan assign mysql server lawan sebagai Master dengan cara:

mysql> STOP SLAVE; 
mysql> CHANGE MASTER TO master_host='192.168.0.100', master_port=3306, master_user='replication', master_password='password', master_log_file='mysql-bin.000012', master_log_pos=154; 
mysql> START SLAVE;

– Pada server B login ke mysql dan lihat master status

Pada server A login ke mysql dan assign mysql server lawan sebagai Master dengan cara:

mysql> STOP SLAVE; 
mysql> CHANGE MASTER TO master_host='192.168.0.101', master_port=3306, master_user='replication', master_password='password', master_log_file='mysql-bin.000004', master_log_pos=154; 
mysql> START SLAVE;

Setelah langkah-langkah tersebut, maka kedua database server tersebut telah sinkron. Tes replikasi database dengan create database di server A, lalu cek database tersebut apakah sudah ada di server B

Server A

mysql> create database test;

Server B

mysql> show databases;

Hasil yang tampil seharusnya database test ada di daftar database pada server B. Demikianlah cluster database MySQL master-master dari saya, semoga bermanfaat.

Sumber:


https://www.linode.com/docs/databases/mysql/mysql-master-master-replication

Terimakasih telah berkunjung ke website Goodpixelpro. Semoga bermanfaat.!

There are no comments

Leave a Reply

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

Start typing and press Enter to search

Shopping Cart