Cara Replikasi Database Di MySQL

Definisi :
Replication Database adalah suatu fitur teknologi pada dunia pemrograman database yang memungkinkan suatu database untuk mereplikasi atau mengopy datanya ke database lain secara otomatis. Secara sederhana replikasi database adalah proses automatik perintah dari database satu ke database lain yang tentunya terhubung dalam jaringan.

Kegunaan :
Kegunaan dari proses replikasi ini adalah bila suatu database satu mengalami kerusakan maka secara otomatis semua data yang telah disimpan pada database satu dapat dilihat kembali di database lain. Kalau pada pembahasan diatas yaitu Proses Backup dan Restore agak kurang praktis, maka konsep inilah solusi keefektifan dalam menjawab kekurangpraktisan kedua proses diatas. Konsep ini merupakan konsep teknologi yang unik, karena secara otomatis segala perintah yang ada pada database satu akan tersimpan pada database lain sehingga bila kehilangan data pada database satu, database masih tersimpan rapih di database lain.

Praktik Proses Replikasi :
Praktik proses replikasi database ini saya lakukan dengan database MySQL. Pada MySQL sendiri sudah mendukung konsep teknologi Replikasi namun tidak secara default langsung terseting untuk melakukan proses replikasi. Kita mesti menyeting terlebih dahulu agar bisa melakukan proses ini.

Satu hal yang penting saat penyetingan proses Replikasi adalah sudah ada 2 komputer yang terkoneksi / terhubung dan 2 komputer tersebut sudah ter-install MySQL sebagai proses kegiatan database.

Dalam proses replikasi database dikenal 2 server database atau 2 MySQL pada komputer yaitu sebagai Master server dan Slave server. Master server adalah server yang biasa dipergunakan untuk melakukan kegiatan managing database. Sedangkan Slave Server adalah database yang bertindak sebagai pencatat sekaligus pereplikasi / pengopian data setiap melakukan kegiatan managing database pada Master Server. Slave Server memiliki alamat IP 192.168.1.1 sedangkan alamat Master Server memiliki alamat IP 192.168.1.2

Sebelum itu pula kita mesti membuat user pada Server Slave yang dapat diakses oleh siapapun dalam jaringan manapun. Disini kami membuat user dengan nama tamu dan password tamu serta user tamu ini memiliki akses GRANT ALL pada semua database.

[ gambar 1 ]

Bila sudah, mari kita mulai menyeting konfigurasinya :

Pada Komputer Master Server :
Pada komputer Master Server cari file my.ini, biasanya selalu ada pada installan MySQL kita. Kalau pada komputer kami berada pada path C:\Program Files\MySQL\MySQL Server
5.1\my.ini
. Bila sudah ditemukan, coba buka dengan notepad, lalu lihat konfigurasinya.

Lalu ketikan dibawah [mysqld] dengan :

log
log-bin=mysql-log.bin
binlog-do-db=nama_database_replication
server-id=1

Lengkapnya bisa dilihat gambar dibawah ini :


[ gambar2 ]

Pada gambar diatas, dataku adalah nama database yang akan dipergunakan untuk proses replikasi, database yang akan secara otomatis disimpan pada Slave Server. Bila sudah, simpan perubahan tersebut, lalu restart service mysql dengan cara mematikan dan menghidupkan lagi servicenya.


[ gambar3 ]

Bila sudah, masuk ke konsol mysql dengan user root lalu buat user yang akan melakukan proses replikasi. Caranya dengan mengetikan perintah ini :

mysql> grant replication slave on *.* to ‘tamu’@’192.168.1.1’ identified by ‘tamu’;

Bila sudah refresh perubahan user baru dengan perintah :

mysql> flush privileges

Bila sudah merefress, coba lihat status Master dengan cara mengetikan perintah ini :


[ gambar4 ]

Pada gambar, terdapat file log yang berisi perintah-perintah Master Server disimpan, posisi Master Server dan Database yang di replikasi. Sampai sini, sekarang kita setting di Slave Server.


Pada Komputer Slave Server :

Cari file my.ini pada Komputer Slave Server. Sama seperti pada komputer Master Server, file my.ini saya berada pada path C:\Program Files\MySQL\MySQL Server 5.1\my.ini. Bila sudah buka dengan notepad lalu tambahkan dibawah [mysqld] beberapa setingan dibawah ini :

server-id=2
master-host=IP-MASTER SERVER
master-user=user_slave
master-password=passwd_slave
master-connect=60
replicate-do-db=nama_database_replication

Yang terpenting adalah samakan nama database replikasinya dengan setingan pada Master Server dan server-id mesti berbeda valuenya dengan server-id pada setingan di Master Server.

Sesuaikan juga user_slave_server dan passwordnya yang telah kita buat pada langkah diatas.

Lengkapnya bisa dilihat disetingan kami pada gambar dibawah ini:


[ gambar5 ]

Bila sudah simpan perubahan pada file my.ini, lalu lakukan restart service mysqlnya seperti pada gambar 2.

Silakan di testing dengan membuat atau memodifikasi pada database yang dijadikan replikasi.

Mohon dikoreksi bila ada yang salah.

Iklan

19 thoughts on “Cara Replikasi Database Di MySQL

  1. Anyway nice and useful artikel,
    Sedikit pertanyaan

    bila Master rusak… lalu, kita pakai database slave untuk sementara

    setelah itu, komputer Server Master up lagi. Apakah data pada slave akan di replikasi pada master? Atau Master kembali mereplikasi ke slave, sehingga data yang salama ini berjalan slave akan hilang?

    Mohon pencerahannya ^^ thx.

  2. @ nanya donk :
    http://dev.mysql.com/doc/refman/5.0/en/replication-faq.html

    coba baca2 disitu mas,,

    setahu saya,,binary log dari slave selalu dikaitkan dengan master..jadi kalu si master mati..ya wassalam..

    tapi kepikiran saya,,simpan aja binary log-nya,,,
    trus klu si master udah hidup lagi..

    lakukan import data dari tanggal binary log saat si master mati…(manual)

    klu secara otomatis ke simpan saat si master hidup lagi..saya kurang tahu mas,,

    mungkin ada teman2 yang paham,,

    silahkan komentarnya di posting…

  3. apakah bisa satu server berfungsi sebagai master sekaligus slave untuk database yang berbeda. Misal di server Pusat, ada database db1, di replikasi ke server Backup. jadi server Pusat berfungsi sebagai master untuk kasus 1 ini. Pada saat yg sama, ada server Cabang dengan db2 yang ingin selalu direplikasi ke server Pusat. jadi server pusat berfungsi sebagai slave untuk replikasi db2. apa bisa ya ?
    tks

  4. Mas, terimakasih artikelnya.
    Setelah saya praktekan, ternyata semua perubahan data pada master otomatis terupdate pada slave. Kendala yang saya hadapi, data pada mysql kadang-kadang hilang. Selain dengan cara backup rutin, bisa tidak dengan cara replikasi ini? slave hanya menerima proses insert,update tapi delete tidak?

  5. @guswid : setau saya tidak bisa 1 server mysql dijadikan master sekaligus slave, karna saat konfigurasi, kita menentukan IP mana yg dijadikan master dan IP mana yg dijadikan Slave. setau sy juga 1 server hanya bisa membuat 1 binary log. CMIIW

Silahkan Komentar...

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s