RSS

Replikasi Mysql Master to Slave

Model Replikasi Database

Setidaknya ada 2 model replikasi database yang bisa kita lakukan, berikut keterangannya.

  • Master-Slave: Jika terjadi perubahan database pada Master, database pada Slave juga ikut berubah. Namun, jika terjadi perubahan pada Slave, Master tidak terpengaruh.
  • Master-Master: Semua server bertindak sebagai Master dan Slave. Karena jika terjadi perubahan database di salah satu server, database pada server lain juga ikut berubah.

Pada percobaan replikasi ini kita akan menggunakan model replikasi Master-Slave.

Cara Membuat Replikasi Database di MariaDB

Pada demo kali ini, kami akan membuat replikasi database dengan spesifikasi server sebagai berikut:

  • Distro: Ubuntu 20.04 LTS
  • Paket VPS : Minimal Paket M (informasi paket VPS murah)
  • MariaDB: 10.3.31
  • IP Master: 203.175.8.224
  • IP Slave: 203.175.8.223

Pastikan sebelum mengikuti panduan berikut, dua server Anda telah siap digunakan untuk replikasi database.

Konfigurasi Server MariaDB pada server Master

  1. Install MariaDB.
apt install mariadb-server mariadb-client -y
  1. Ubah konfigurasi pada conf mariadb.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

# baris 29, tambah IP bind-address dengan IP server
bind-address = 127.0.0.1
bind-address = 203.175.8.224

# pada baris 74, lepas comment 

server-id = 1

# pada baris 75, lepas comment

log_bin = /var/log/mysql/mysql-bin.log
konfigurasi replikasi
  1. restart service mariadb.
systemctl restart mariadb
  1. setelah melakukan restart, kita dapat membuat user database yang nantinya digunakan untuk replikasi.
# mysql -u root -p
# GRANT REPLICATION SLAVE ON *.* TO 'mirror'@'203.175.8.223' IDENTIFIED BY 'password';
# FLUSH PRIVILEGES; 
# FLUSH TABLES WITH READ LOCK;
  1. kita akan menampilkan informasi replika master yang digunakan untuk server slave.
SHOW MASTER STATUS;
position mariadb replikasi
  1. diatas adalah informasi position dan log yang akan kita binding pada server slave.

Konfigurasi Server MariaDB pada server Slave

  1. Install MariaDB.
apt install mariadb-server mariadb-client -y
  1. Ubah konfigurasi pada conf mariadb.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

# baris 29, tambah IP bind-address dengan IP server

bind-address = 127.0.0.1
bind-address = 203.175.8.223

# pada baris 74, ubah ke id lainnya (selain 1)

server-id = 2

# pada baris 75, lepas comment

log_bin = /var/log/mysql/mysql-bin.log
konfigurasi replikasi
  1. Melakukan koneksi database ke master, pastikan diisi sesuai dengan informasi pada server Master sebelumnya.
mysql -u root -p
CHANGE MASTER TO
MASTER_HOST='203.175.8.224',
MASTER_USER='mirror',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=852; 

(enter)

START SLAVE;
UNLOCK TABLES;
  1. restart service mariadb
systemctl restart mariadb
  1. apabila sudah terkonfigurasi, pastikan slave sql berjalan dan posisi sesuai dengan menjalankan perintah berikut :
SHOW SLAVE STATUS \G
  1. maka akan tampil informasi master;
replikasi database mysql mariadb

Pengujian

Lakukan pembuatan database, pembuatan tabel, CRUD record pada server Master.

Setiap selesai menjalankan satu perintah pada server Master periksa server Slave apakah ada terjadi hal yang sama pada server Master.

Contoh : kita akan membuat database bernama ‘coba’ di server master, maka database coba akan otomatis copy pada server slave

Database Master

database pada master

Database Slave

database pada slave

Apabila terdapat kendala, pastikan untuk port 3306 dapat diakses oleh masing-masing server dengan melakukan konfigurasi pada firewall.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS