Monday, August 15, 2016

Database Replication (Master to Slave) MySQL

Hallo gengs, sudah lama rasanya blog ini tidak diupdate. Pada tutorial kali ini saya akan membahas cara setup database replication (master to slave) di MySQL. 

Apa itu database replication ?, seperti nama nya database replication berarti membuat replika/copy an dari satu lebih database secara otomatis. Biasanya terdapat istilah database master(sebagai sumber data) dan database slave(sebagai tujuan data).

Terdapat pula beberapa jenis replikasi database yaitu :
  • Dilihat dari arah replikasinya:
    • master to slave -> replikasi ini bersifat 1 arah, hanya dari master menuju slave
    • master to master -> replikasi 2 arah, pada tipe replikasi ini suatu database bisa menjadi database master(sumber data) dan juga menjadi database slave yang berarti menerima data dari database lain.
  • Dari jenis komunikasinya:
    • synchronous -> biasanya digunakan ketika kita membutuhkan real time database database application
    • asynchronous
Kira - kira seperti inilah gambaran replikasi database master to slave maupun master to master

Untuk lebih jelas mengenai jenis komunikasi synchronous dan asynchronous silahkan googling :D

Karna pada tutorial kali ini kita hanya akan membuat "simple database replication" maka saya hanya menggunakan 2 buat database server, satu berperan sebagai master satu lagi berperan sebagai slave dan menggunakan jenis komunikasi asynchronous(default mysql). Kira" seperti ini ilustrasinya :
berikut ip address yang akan saya gunakan pada masing" server
master : 192.168.1.1
slave : 192.168.1.2

NOTE : JIKA TEMAN" MENGGUNAKAN VIRTUALBOX, JANGAN MENG CLONE UNTUK MEMBUAT 2 BUAH SERVER KARENA AKAN MEMILIKI UUID YANG SAMA.

Pertama kita akan mengsetting ip address dikedua server (saya menggunakan ubuntu server 16.04) :



Langkah selanjutnya adalah membuat database di database master dan slave (nama database harus sama) disini database yang saya buat adalah "test" :



Selanjutnya adalah konfigurasi database master letak file konfigurasi mysql di ubuntu 16.04 berada di direktori /etc/mysql/mysq.conf.d/mysqld.cnf edit menjadi seperti dibawah ini (binlog_do_db adalah nama database yang akan di replikasi)  :



restart mysql : /etc/init.d/mysql restart

Masuk kembali ke command line mysql, kali ini kita akan membuat user untuk database replication :


Pada tutorial kali ini replication bekerja berdasarkan log database dan position, setiap ada perubahan pada database "test" (pada kasus ini) nama file dan position akan berubah.

Langkah selanjutnya adalah konfigurasi database slave, letak konfigurasi nya sama seperti pada database master yakni di /etc/mysql/mysq.conf.d/mysqld.cnf, edit menjadi seperti dibawah ini (perhatikan server id harus berbeda dari database master) :


restart mysql : /etc/init.d/mysql restart

Hal terakhir yang harus kita lakukan adalah mengaktifkan database replication pada database slave :


Ketik show slave status; (di slave) untuk melihat apakah replikasi berhasil. coba juga untuk membuat table kemudian memasukan data ke table tersebut(di master) kemudian lihat kembali di database slave.

Demikian tutorial kali ini. Mohon maaf apabila ada kekurangan maupun kesalahan. Harap koreksi jika ada yang salah, terima kasih :)

note : jika terdapat error untuk mysql bisa dilihat di /var/log/mysql/error.log
untuk informasi lebih lanjut mengenai database replication bisa kunjungi link berikut ini :  
http://dev.mysql.com/doc/refman/5.7/en/replication.html

referensi :
http://dev.mysql.com/doc/refman/5.7/en/replication.html
https://www.digitalocean.com/community/tutorials/how-to-set-up-master-slave-replication-in-mysql







4 comments:

  1. mas ada pertanyyan minta tlg dibantu, ini server legacy dari orang lama soalnya.
    kasusnya gini setingan replication database sdh running tp kmrn server ngehang jd sempat reboot terus database replicatonnya ngga jalan lg, nah gmn caranya menginject ulang database master ke database slave dan gimana caranya agar supaya database replicationnya jalan normal kembali?? makasih banyak

    ReplyDelete
    Replies
    1. pakai database apa?, trus pake konfigurasi database replication yang mana?

      Delete
  2. bisa buat yang langsung cluster database dan file webnya(folder www) mas ? udah saling sinkronisasi.

    ReplyDelete
    Replies
    1. kalo untuk file/folder di dalam linux, Mas nya bisa gunakan rsync ...

      Delete

dilarang berkomentar menggunakan kata-kata yang tidak pantas... !!!