Tutorial menambah slave di replikasi MySQL dengan relasi Master Slave


Kalau tutorial kemaren yang berjudul membangun replikasi MySQL dengan hubungan Master Slave hanya melibatkan satu master dan satu slave:

Baca: Langkah-langkah membangun replikasi MySQL dengan hubungan Master Slave di Ubuntu Server.

maka di tutorial kali ini saya ingin membahas cara menambahkan satu Slave lagi yang terhubung ke Master, sehingga dari tampilan sebelumnya yang seperti ini:


menjadi seperti ini:


lalu bagaimana caranya menambahkan? Berikut langkah-langkahnya:

Konfigurasi Server Master:
Pertama, silahkan masuk ke dalam server master, kemudian aktifkan mode READ ONLY database dengan menjalankan perintah:

 FLUSH TABLE WITH READ LOCK;

pengaktifan mode READ ONLY ini diimaksudkan agar server Master tidak ditulisi sehingga menimbulkan kerancuan data pada server slave yang baru dikonfigurasi.

Setelah berhasil mengaktifkan mode read only, jalankan perintah:

 SHOW MASTER STATUS;

untuk melihat log file yang digunakan (baca dan catat isi kolom File ) dan posisi log file terakhir (baca dan catat isi kolom Position) untuk diberikan ke server slave yang baru.

Misal isinya kolom file adalah mysql-bin.000003 dan isi kolom position 120.

jangan keluar dulu dari shell mysql pada server master, buka lagi terminal baru dan silahkan dumping database yang akan saya replikasi, nama database yang saya replikasi adalah belajar, maka perintahnya menjadi:

 mysqldump -u root -p --opt belajar > belajar.sql

setelah itu salin hasil dumping tersebut ke server slave yang baru.

Konfigurasi Server Slave terbaru:
Langkah berikutnya silakan masuk ke dalam server Slave yang baru dengan perintah:

 mysqldump -u root -p 

lalu buat database belajar dengan perintah:

 CREATE DATABASE belajar;

lalu keluar dari shell dan import database dari server master ke dalam database server slave dengan menjalankan perintah di bawah pada server slave:

 mysql -u root -p belajar < belajar.sql

setelah itu, perhatikan ID server Master dan Slave sebelumnya:
  • Server Master memiliki server-id = 1
  • Server Slave memiliki server-id = 2
maka server slave yang terbaru saya berikan server-id = 3,

untuk melakukan setting di server slave terbaru saya buka file konfigurasi di my.cnf lalu cari bagian:

 bind-address = 127.0.0.1
 #server-id=1

ubah menjadi:

 #bind-address = 127.0.0.1
 server-id=3

kemudian cari bagian

 #log_bin= /var/log/mysql/mysql-bin.log
 max_binlog_size = 100M
 #binlog_do_db = include_database_name

ubah menjadi:

 log_bin = /var/log/mysql/mysql-bin.log
 relay-log = /var/log/mysql/mysql-relay-bin.log
 max_binlog_size = 1024M
 binlog_do_db = belajar

setelah itu simpan dan restart layanan MySQL server slave yang baru dengan perintah:

 sudo service mysql restart

setelah itu masuk ke dalam shell MySQL server slave yang baru dengan perintah:

 mysql -u root -p

lalu jalankan perintah untuk mengarahkan server slave yang baru ke server master:

 CHANGE MASTER TO MASTER_HOST='192.168.56.25',MASTER_USER='root', MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=  120;

kemudian jalankan perintah pengaktifan Slave server dengan menjalankan perintah di bawah:

 START SLAVE;

lalu lihat status server slave yang aru dengan perintah:

 SHOW SLAVE STATUS\G

pastikan tidak ada error di dalamnya. Konfigurasi Server Slave Selesai.

Konfigurasi Server Master:

kembali ke server master di shell MySQL yang belum ditutup tadi, silahkan jalankan perintah:

 UNLOCK TABLES;

perintah diatas digunakan untuk menonaktifkan mode READ ONLY pada server master. Konfigurasi Server Master Selesai.

kemudian silahkan coba tulisi data di dalam database belajar pada server Master, dan jika berhasil, maka pada server slave 1 dan server slave 2 juga data yang baru tersebut tereplikasi juga.

Selamat mencoba dan terima kasih telah berkunjung :-)


Comments