Replikasi 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 sepengalaman saya menggunakan MySQL 5.5.x cara ini tidak berhasil.

Baik, langsung saja kita akan mencoba langkah-langkahnya 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, di linux, path tersebut ada di /etc/my.cnf.
d. Tepat di bawah section [mysqld] tambahkan baris berikut

log-bin= mysql-bin
server-id= 1
binlog-do-db= sekolah

binlog-do-db= sekolah1 (sample, apabila database yg di replikasi lebih dari satu)
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_io_running = yes dan 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.

Sumber :
http://habibi.web.id/2011/07/07/replicate-mysql/