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 :
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 ]