August 13, 2010

MySQL Replication pada Sistem Operasi Microsoft Windows

Mencoba teori pada "MySQL Reference - Chapter#6", yaitu tentang MySQL Replication, beberapa orang mungkin menyebutnya sebagai mirroring MySQL.

Komputer yang digunakan sebagai bahan percobaan adalah:
  • Komputer MASTER, MySQL 5.0 dengan sistem operasi Windows XP x64 SP1, dan IP 192.168.1.5
  • Komputer SLAVE, MySQL 5.0 dengan sistem operasi Windows XP SP2, dengan IP 192.168.1.1

Berikut adalah tahapan yang dilakukan, dan mungkin sedikit berbeda dan lebih ringkas dibanding contoh pada Chapter#6 - MySQL Reference.


Set Database MySQL pada Komputer MASTER

Pertama masuk ke console MySQL dengan login root, kemudian buat user untuk database SLAVE replikasi.

mysql> GRANT REPLICATION SLAVE ON *.* 
    -> TO 'repl'@'192.168.1.1' IDENTIFIED BY 'rahasia';
Kemudian buka file konfigurasi MySQL, pada section [mysqld] tambahkan dua baris seperti sebagai berikut:
[mysqld]
log-bin=mysql-bin
server-id=1
Restart ulang service MySQL, salah satu caranya dari command prompt, ketik (nama service MySQL menyesuaikan):
NET STOP MySQL
NET START MySQL
Setelah itu, masuk kembali ke console MySQL dengan login root, dan jalankan perintah sebagai berikut:
mysql> SHOW MASTER STATUS;
+------------------+----------+--
| File             | Position | 
+------------------+----------+--
| mysql-bin.000001 |       98 |  
+------------------+----------+--
1 row in set (0.00 sec)

Catat dengan baik-baik, bahwa file log binary yang digunakan database MASTER adalah mysql-bin.000001 dengan posisi 98, nilai kedua variabel diatas mungkin berbeda untuk komputer lain. Dan nilai kedua variable ini nantinya digunakan pada konfigurasi database SLAVE.


Set Database MySQL pada Komputer SLAVE

Pertama, stop service MySQL, salah satu caranya adalah dengan mengetikkan perintah berikut pada command prompt:

NET STOP MySQL
Kemudian buka file konfigurasi MySQL, dan tambahkan satu baris berikut pada section [mysqld]:
[mysqld]
server-id=2
Kemudian copy beberapa database yang diperlukan dari master (kecuali database mysql) terutama database yang ingin di-replikasi, langkah peng-copy-an dapat melalui sistem dump ke file SQL atau copy langsung folder database-nya dari komputer MASTER ke komputer SLAVE.

Langkah selanjutnya, jalankan kembali service MySQL, salah satu caranya adalah dengan mengetikkan perintah berikut dari command prompt:

NET START MySQL
Kemudian login ke console MySQL sebagai user root, konfigurasi SLAVE dan jalankan dengan mengetikkan perintah dan memberikan nilai konfigurasi sebagai berikut:
mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.1.5',
    -> MASTER_USER='repl',
    -> MASTER_PASSWORD='rahasia',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=98;
Query OK, 0 rows affected (0.36 sec)

mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
Itu saja, sekarang coba lakukan perubahan data pada salah satu table database MASTER, jika mengikuti tahapan diatas dengan benar, pasti data pada database SLAVE juga ikut berubah secara otomatis.

SLAVE dapat dibuat lebih dari satu komputer, jika komputer MASTER mengalami kerusakan, maka aplikasi bisa langsung di switch menggunakan server database SLAVE, namun jangan lupa menyesuaikan konfigurasi database (username, password, host) yang sesuai dengan komputer SLAVE.

Menurut informasi pada MySQL reference, dengan mengaktikan fitur log-bin, MySQL akan berjalan 1% lebih lambat dari sebelumnya.


Dan yang terakhir, akan lebih bermanfaat jika ada yang mau membuat tools replikasi MySQL secara otomatis, mungkin dengan memanfaatkan NSIS.