27 February 2012

Setup replikasi mysql sederhana

Apa itu replikasi, secara cepat, replikasi itu backup, isi master di copy ke slave, saat menggunakan MS SQL, dengan sistem publikasi dan subcriptionnya, hal ini cukup mudah di setup, saya ingin penggunaan mysql juga ada replikasinya, setelah belasan page terbuka dengan start dari link ini :  http://dev.mysql.com/doc/refman/5.1/en/replication-configuration.html akhirnya jalan juga setting replikasi mysql.

Banyak opsi dan setting lebih canggih disana, tapi saya sih cuma butuh setting backup simple saja, ada master ada slave, apa yang ditulis di master otomatis di copy oleh slave.

Setelah setup sendiri, dan googling lebih lanjut, disarankan baca link ini, http://www.clusterdb.com/mysql-cluster/get-mysql-replication-up-and-running-in-5-minutes/ sesuai yang saya butuhkan dan gampang dipahami.

Link itu yang memecahkan kepusingan saya baca manual mysql... untuk mulai replikasi, jalankan perintah "START SLAVE" di server slave, hehehe...

Situasi saya, saya punya dua komputer, yang menjadi master server ip address 192.168.80.1 dan komputer kedua sebagai slave server, inti setting ini
  • Setup dan Start Replikasi 
  • Copy Data 
Setup
  1. Install mysql di dua komputer itu
  2. Seting konfigurasi dulu di my.ini, untuk di server biasanya tinggal di uncomment saja (saya menggunakan xampp), baris tentang

    server-id=1
    log-bin=mysql-bin
    innodb_flush_log_at_trx_commit=1
    sync_binlog=1

    #optional, list pembatasan database yang boleh direplikasi
    binlog-do-db=database1
    binlog-do-db=database2
    binlog-do-db=database3
  3. Untuk si slave, di uncomment bagian

    server-id=2
    #konfig akses master dari slave
    #user agung dibawah ini punya grant replication dan super
    master-host=192.168.80.1
    master-user=agung
    master-password=rahasiadong
    log-bin=mysql-bin
    report-host=192.168.80.1
    tmpdir="d:/temp"
    log-update="d:/temp"
    #optional, utk pembatasan replikasi db tertentu saja
    replicate-do-db=database1
    replicate-do-db=database3
  4. Start mysql di dua komputer itu
  5. Jalankan "START SLAVE" di slave server
  6. Jalankan sintax "SHOW SLAVE STATUS" untuk tahu apakah fungsi slave sudah berjalan
Note :
  • report-host dibagian slave dapet informasi dari komentar di situs mysql.com, supaya perintah "show slave hosts" bisa di jalankan di server master, mungkin berguna kalau punya lebih dari satu slave

Copy Data

Saat ini koneksi sudah ada tapi belum ada database yang ter-replikasi oleh si slave dari masternya
  • Bila tipe table di database-database di master yang ada adalah myISAM Jalankan perintah LOAD DATA FROM MASTER,  di slave server, maka semua database akan di tarik oleh slave, cara ini paling simple tapi tidak reliable karena saat proses loading dari master berjalan, dan slave menemukan table innodb misalnya, maka proses akan terhenti dengan komentar "Net error reading from master"
  • Batasi database yang di tarik oleh slave dengan perintah LOAD DATA FROM MASTER dengan edit config my.ini bagian  replicate-do-db=gantidengannamadatabase
  • Bila ada masalah dengan editing table di master jalankan sintaks : UNLOCK tables
  • Untuk tipe selain MyISAM harus menggunakan mysqldump di master kemudian di restore di slave dan jalankan perintah change master dengan memperhatikan master log pos, untuk hal ini belum dicoba, nanti aja, sementara kebutuhan saya sudah terpenuhi, hehehe...


Software Klinik Dan Software Apotek
Manajemen Inventori, Rekam medis, Billing dan Kasir/POS, Garansi Error Seumur Hidup Saya !
Harga Rp 2 Juta untuk software klinik dan Rp 950rb untuk software apotek, Silakan Mampir 
www.aespesoft.com

4 comments:

  1. Wah Bos Agung udah banyak banget tulisannya, jadi minder nih blogger baru :)

    ReplyDelete
  2. bisa aja si master, suka merendah, udah di aggregat ke reader gw tulisan lo gul, ditunggu postingan techie nya, :D

    ReplyDelete
  3. pas load master kluar warning kayak gini master,ini knapa ya?
    " 'LOAD DATA FROM MASTER' is deprecated and will be removed in a future release. Please use mysqldump or future BACKUP/RESTORE DATABASE facility instead "

    ReplyDelete
  4. iya mas, tapi masih jalan kan untuk database tipe myISAM, kalau ga jalan, mau ga mau udah harus pakai mysqldump

    ReplyDelete