May 3, 2010

Replikasi Mysql

Adalah Salah satu cara untuk membuat backup realtime pada mysql adalah dengan cara replikasi. Dimana keuntungan replikasi mysql adalah data antara server dan komputer replikasi menjadi benar-benar identik dalam waktu hampir bersamaan (mungkin selisi nol koma ms). namun ada pula kerugian dari replikasi mysql ini
1. Data mysql akan dengan sangat cepat membengkak (terutama dari log)
2. Performa database turun (sekitar 1%)
3. Butuh maintenance yang cukup ribet (apalagi jika server nya sering restart mendadak)

Tapi jika ingin membuat backup mysql yang lebih stabil namu tidak realtime mungkin kawan bisa cek halaman membuat backup mysql.

Ok, langsung kita mulai tutorial replikasi mysql

Pertama, Pada server buatlah satu privilages replikasi

Carannya
Masuk ke mysql command line

ketik perintah

Grant replication slave on*.* to'userreplikasi'@'192.168.1.100' identified by '123456';

On *.* adalah nama databse dimana *.* menunjukan semua nama database mysql

'userreplikasi' adalah username yang nantinya akan digunakan komputer replikasi untuk mengkases server utama

'192.168.1.100' adalah IP addres komputer replikasi

'123456' adalah password yang digunakan komputer replikasi untuk mengkases server utama

jika benar, maka kamu akan menjumpai screen kira-kira sperti ini



Kedua,STOP service mysqlnya.

Caranya
Masuk ke Control Panel, Administrative Tools, Service, Cari Mysql lalu Stop



hapus file iblogfile1 dan iblogfile0 lalu copy databse server (letakan di flasdis, cd atau apa saja), data-data dari database biasanya disimpan di folder "C:\Program Files\Mysql\Mysql Server 5.0\Data" copy folder "data" tersebut.

Buka file my.ini , tepat dibawah [mysqld] tambahkan script

Server-id=1
log-bin=server.bin
binlog-do-db=namadatabse

Lalu start service mysqlnya

Samapi disini proses pada komputer server sudah selesai, tinggal proses pada komputer replikasi

Ketiga, letakan folder "data" yang telah dicopy dari server di komputer replikasi pada "C:\Program Files\Mysql\Mysql Server 5.0\". Dimana komputer replikasi ini juga terinstal mysql server dan servicenya telah di STOP. Hapus dahulu folder "data" default gantikan dengan folder data yang diambil dari komputer server.

Pada my.ini tepat dibawah [mysqld] komputer replikasi tambahkan

server-id=2
master-host=192.168.1.2 #IP server
master-user=userreplikasi
master-password=123456
replicate-do-db=nama_databse
replicate-ignore-table=nama_tabel #adalah table yang tidak ikut di replikasi

Lalu start service Mysqlnya

Sudah finis

Cara diatas  efektif dilakukan di mysql versi 5.2.xx kebawah. Jika diatasnya ada cara setingan yang lainnya. berhubung capek kapan-kapan aja dilanjutin

4 comments:

Anonymous said...

maaf mau tanya, klo slave nya itu database mysql di internet website yang di akses lewat cpanel. konfigurasi mysql nya itu gimana ya? sperti membuka /etc/my.cnf itu kn di komputer, bukan di cpanel. mohon pencerahannya. terima kasih

anakberbakti said...

@anonym, replikasi jelas tujuannya bukan backup untuk database yg ada di webhosting.
Jika anda ingin bikin backup terjadwal, bisa saja.
1. Pake cara http://anakberbakti.blogspot.com/2010/03/create-mysql-auto-backup.html , syaratnya webhostingnya ngasi fasilitas remote database. Jadi jadwalnya diatur dikomputer local
2. Pake cron job, di cpanel hampir emua ada. cron job isinya peritah untuk membackup databse(bisa php,asp,cfm dll), disana disdiakan waktu kapan scrip tsb di eksekusi. Biasanya, stelah backup hasil di emailkan ke ownernya.tenju saja anda harus bikin script nya jg

Anonymous said...

waduh iya..lognya bengkak, biar kecil lagi di apain ya? caranya gimana? Trims

anakberbakti said...

instal ulang mysqlya, jika data yang masuk perhari sangat besar. biasanya 3 bulan sekali maintenance databse