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
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
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) :
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
mas ada pertanyyan minta tlg dibantu, ini server legacy dari orang lama soalnya.
ReplyDeletekasusnya 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
pakai database apa?, trus pake konfigurasi database replication yang mana?
Deletebisa buat yang langsung cluster database dan file webnya(folder www) mas ? udah saling sinkronisasi.
ReplyDeletekalo untuk file/folder di dalam linux, Mas nya bisa gunakan rsync ...
Delete