Pages - Menu

Minggu, 06 Mei 2012

REPLIKASI DATABASE MYSQL

Replicate atau replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objek database ke database lain dan melaksanakan sinkronisasi antardatabase sehingga konsistensi data dapat terjamin. Jadi, dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringan lokal maupun internet. Replikasi juga memungkinkan untuk mendukung kinerja aplikasi, penyebaran data fisik sesuai dengan penggunaannya, seperti pemrosesan transaksi online dan DSS (Decision Support System) atau pemrosesan database terdistribusi melalui beberapa server.
Dengan menggunakan teknik ini, kehandalan database akan lebih terjamin karena data dapat didisitribusikan ke server-server yang lain. Misalnya seperti transaksi yang terjadi pada Bank, apa yang akan terjadi jika Bank hanya memiliki sebuah database server, apabila pada database server tersebut terjadi kerusakan atau padamnya arus listrik? Pasti transaksi perbankan akan berhenti total. Hal ini tidak demikian terjadi jika kita menggunakan database terdistribusi yang pada setiap transaksi juga direplikasi ke server yang lain.
Terdapat beberapa jenis replikasi akan tetapi yang akan kita bahas di sini hanya sebuah teknik replikasi sederhana saja. Replikasi dapat dilakukan dengan jumlah komputer minimal dua buah, satu buah master dan satu buah slave. Komputer slave akan mengkopi secara otomatis setiap perubahan database yang terjadi pada komputer master. Cara membuat replikasi MySQL di sini hanya bisa digunakan untuk MySQL versi 5.1.x atau di bawah ver si 5.2.x. Jika anda menggunakan MySQL versi yang lebih baru, ada kemungkinan gagal. Karena jika menggunakan MySQL versi 5.5.x cara ini tidak berhasil.
Langkah-langkahnya adalah sebagai berikut:
1. KONFIGURASI KOMPUTER DATABASE MASTER
a. Menyeting IP ADDRESS: 192.168.2.2 pada komputer Master.
b. Setelah itu buatlah sebuah database dengan nama sekolah, sebuah tabel dengan nama siswa dan isikan dua buah data atau terserah pada tabel tersebut.
c. Matikan service MySQL, buka teks editor misalnya: Notepad++ dan buka file yang terletak pada direktori mysql\bin\my.cnf. Jika anda menggunakan XAMPP seperti saya, anda bisa membuka file tersebut di direktori C:\xampp\mysql\bin\my.cnf
d. Tepat di bawah section [mysqld] tambahkan baris berikut
log-bin= mysql-bin server-id= 1 binlog-do-db= sekolah log-slave-updates
e. Kemudian buatlah akses user slave ke database master, misalnya dengan nama slave_user dengan perintah sebagai berikut mysql> grant replication slave on *.* to ‘slave_user’@’%’ identified by ‘asdf’; (asdf adalah passwordnya) mysql> flush privileges;
f. Kemudian berikan hak akses kepada user tersebut agar dapat menggunakan database pada master, dengan perintah sebagai berikut
mysql> grant all on *.* to ‘slave_user’@’%’ identified by ‘asdf’;
mysql> flush privileges;
g. Lihat status log pada master, tetapi sebelumnya lock dulu tabelnya, perintahnya sebagai berikut mysql> flush tables with read lock;
mysql> show master status; Pada table akan terlihat File dan Position catat baik-baik nama file dan posisinya. Kemudian ketikkan perintah untuk meng-unlock tabel kembali mysql> unlock table;

2. KONFIGURASI KOMPUTER DATABASE SLAVE

a. Menyeting IP ADDRESS: 192.168.2.3 pada komputer slave.
b. Menyeting my.cnf pada databse slave, tepat di bawah section [mysqld] tambahkan baris: server-id= 2 master-host= 192.168.2.2 master-user= slave_user master-password= asdf master-connect-retry= 30 replicate-do-db= sekolah
c. Start service MySQL dan copykan database yang terdapat di master dengan perintah mysql> load data from master;
d. setelah berhasil maka database master (sekolah) akan terkopi semua ke slave.
e. Kemudian melakukan setting replikasi pada slave. Sebelum melakakukan setting replikasi pada slave sebaiknya menonaktifkan slave terlebih dahulu dengan perintah mysql> slave stop; mysql> change master to master_host=’192.168.2.2′, -> master_user=’slave_user’, -> master_password=’asdf’, -> master_log_file=’mysql-bin.000001′, <- isikan sesuai dengan file log masternya -> master_log_pos=106; <- isikan sesuai dengan posisi log masternya. (baca kembali langkah 1 g.)
f. Aktifkan slave dengan perintah mysql> slave start;
g. Cek status slave dengan perintah mysql> show slave status\G; dan melihat pada slave_sql_running = yes, berarti slave telah berjalan dengan baik.
Setelah selesai langkah-langkah tersebut di atas dan tidak terdapat kendala, sekarang saatnya menguji apakah replicate telah berjalan dengan baik, yaitu dengan mengubah, menambah atau menghapus tabel siswa pada database sekolah di komputer master, lalu cek pada komputer slave apakah datanya juga ikut berubah seperti yang terjadi di komputer master? Jika ya, maka anda telah berhasil membuat replikasinya.

16 komentar: