DB Replication Master Master 2 Arah

Ayi angio
3 min readJul 9, 2024

--

Photo by Caspar Camille Rubin on Unsplash

Artikel Ini adalah kelanjutan dari artikel sebelumnya, jika belum membaca artikel tersebut bisa di lihat disini https://ayiangio.medium.com/db-replication-master-salve-satu-arah-7fbe9222c460

Dalam Artikel ini kita akan coba membuat Replication Database Master to Master Secara 2 arah, yang mana dari kedua server tersebut bisa saling Read dan Write dan saling sync antara kedua database server.

Disclaimer

Eksperimen ini hanya bersifat lokal dan belum melalui tahap pengujian yang mempuni seperti stress test, DDOS server, konsistensi data ketika data di write secara bersama kedalam dua server.

Pada langkah berikut kita akan menggunakan istilah yang berbeda dari artikel sebelumnya

  1. db1 = Server Database 1 (pada artikel sebelumnya disebut dengan Master-server)
  2. db2 = Server Database 2 (pada artikel sebelumnya disebut dengan Slave-server)

Prerequisite

  • Virtualbox
  • SSH

Steps

Pada artikel sebelumnya kita telah mengkonfigurasi server db1 sebagai master dan server db2 sebagai slave, pada step berikut kita akan konfigrasi server db1 sebagai slave untuk server db2.

  • Saya asumsikan kedua server sudah masuk dengan menggunakan ssh
  • Pastikan kembali kedua server bisa saling berkomunikasi
  • Pada server db2 buat akun mysql untuk server db1 dan berikan grant akses sebagai slave
#Create User
create user '<user db1>'@'<ip server db1>' identified by '<Password>' ;

#Grant Access
grant replication slave on *.* to '<user db1>'@'<ip server db1>';
  • Show konfigurasi master untuk melihat file dan position
show master status \G
  • Pada server db1 konfigurasi replicate pada mysql server nya
change replication source to source_host='<ip server db2>', source_log_file='<File bin pada server db2>', source_log_pos = <position pada server db2>, source_ssl=1;
  • Start Replication pada mysql di server db1 menggunakan user yang telah dibuat pada langkah sebelumnya
start replica user='<user db1>' password='<password user db1>' ;
  • Lihat status slave dari server db1, jika sudah seperti ini berarti server siap menerima event dari server db2

Testing

Kita akan melakukan pengujian dari terhadap kedua server tersebut

  • Show database dari kedua server, dengan jumlah dan database yang sama
  • Kita akan buat database pada server db2
  • Show database kedua server, database dan jumlahnya akan sama
  • Kita akan Drop database tersebut melalui server db1
  • Show database maka jumlah dan database nya akan sama
  • Pada tahap ini kalian sudah berhasil membuat database replication master to master

Kesimpulan

  • Data Akan Secara realtime saling sync antara kedua server
  • Kedua server menjadi master dan juga menjadi slave

Reference

--

--