Replikasi MySQL
Sepertinya hari ini lagi produktif, ampe nulis 2 post.
Dan masih tentang hal yang sama dengan tulisan sebelumnya, yaitu database MySQL. Kalau tadi mengijinkan akses client, sekarang mengenai replikasi. Replikasi adalah membuat duplikat dari database di sebuah komputer ke komputer yang lain. Replikasi ini berguna antara lain untuk backup, jadi ketika database utama down, system masih bisa running dengan menggunakan database hasil replikasi sementara database utama diperbaiki.
Mari kita langsung to the point saja ke replikasi. Yang dibutuhkan adalah dua buah komputer yang terhubung jaringan yang sudah terinstall mysql server. Kita misalkan komputer 1 beralamat di 192.168.56.1, sedangkan komputer 2 di 192.168.56.101. Pertama-tama kita buat database yang sama di masing-masing komputer. Kemudian kita atur dulu komputer yang akan dijadikan master. Hal yang harus dilakukan adalah :
- Tambahkan line berikut pada file my.cnf di komputer master pada section mysqld
server-id = 1
log_bin = mysql-bin
expire_logs_days = 10
max_binlog_size = 100M
binlog_do_db = replikasi #nama database yang akan direplikasi
- Jalankan query berikut, kemudian restart service mysql.
grant replication slave on *.* to user_database@ip_komputer_slave identified by 'password_database';
- Cek master status. Jangan lupakan hasil dari cek status ini, karena nantinya akan digunakan untuk pengaturan di komputer slave.
show master status;
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 997 | replikasi | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
Nah, sekarang kita atur komputer slave tempat database replikasinya :
- Tambahkan line berikut pada file my.cnf di komputer slave di section mysqld.
server-id = 2
master_host = 192.168.56.1
master_user = root
master_password = root
master_port = 8889
- Restart service mysql, kemudian jalankan query berikut :
stop slave;
change master to
master_host = '192.168.56.1',
master_port = 8889,
master_user = 'user_database',
master_password = 'password_database',
master_log_file = 'mysql-bin.000001', #hasil dari show master status
master_log_post = 997, #hasil dari show master status
master_connect_retry = 10;
start slave;
Setelah itu kita test insert, update, dan delete data di database master, kemudian kita cek di database slave, apakah modifikasi data mempengaruhi database slave tidak. Hasil pengetesan saya modifikasi yang dilakukan langsung tereplikasi ke database slave tanpa menunggu waktu yang lama.
Nah, nggak sulit bukan melakukan replikasi di mysql. Tantangan selanjutnya adalah replikasi di oracle. Karena di kantor menggunakan oracle, dan saya termasuk newbie di oracle, jadi belum terlalu paham tentang database yang satu ini. Selamat mencoba. :)
Referensi : http://ndri.info/catatan/membuat-mysql-database-replication-server