Pengertian
Replikasi Database
Secara definisi replikasi memiliki
pengertian sebagai suatu proses mencopy atau mentransfer data dari suatu
database ke database lain yang tersimpan pada komputer berbeda. Replikasi dapat
difahami sebagai proses pengkopian dan pengelolaan objek-objek dari database
yang membentuk suatu sistem database terdistribusi (Distributed Database).
Pada umumnya MySQL dipergunakan
secara massal sebagai Database yang cukup handal dalam menangani sistem
database terpusat, seperti kebanyakan sistem database yang digunakan untuk web
site, content management system, dan lain-lain. Bahkan hampir seluruh penyedia
layanan hosting menyertakan dukungan produk MySQL untuk kelengkapan
service-nya.
Penggunaan
MySQL untuk mendukung proses replikasi database pada saat artikel ini ditulis
masih sangat jarang ditemui. Implementasi sistem database terdistribusi
kebanyakan masih berkiblat pada software-software dengan bandrol yang tinggi
seperti Oracle, SQL Server, IBM DB2 dan lain sebagainya.
MySQL dalam hal ini tentunya tidak
mau ketinggalan. Mulai versi 5.0 MySQL sudah mendukung sistem replikasi yang
mana sebuah database server yang berfungsi sebagai master dapat tereplikasi
datanya ke dalam satu atau lebih database server yang difungsikan sebagai
slave.
Model replikasi pada MySQL adalah
Asynchronous, sehingga server dengan type slave tidak selalu harus terkoneksi
secara permanen untuk menerima berbagai update pada database server master.
Replikasi dapat diberlakukan pada sebagian table atau pada keseluruhan
database, tergantung pada kebutuhan kita.
Tahap Replikasi Database dengan
MySQL
Untuk melakukan proses replikasi
dibutuhkan :
=>Dua
atau lebih komputer yang berfungsi sebagai server, satu server berperan sebagai
master dan yang lainnya sebagai slave
=>Adanya
koneksi jaringan baik melalui LAN, WAN ataupun Wireless (setting IP Address
tidak akan dibahas pada tutorial ini, pembaca dianggap sudah mengerti)
Tahap-I, Setting Pada Komputer
Master
(1)
Buka file my.ini
(2)
Jika anda menggunakan paket Wampserver, maka tambahkan opsi berikut ini pada
bagian bawah tag [wampmysqld]
server-id = 1
log-bin
Keterangan
: Jika paket PHP dan MySQL yang anda gunakan bukan wampserver, maka berikan
perintah di atas sesuai dengan baris yang mengandung “server-id”, hal ini
dilakukan untuk mengindeks tiap server shg MySQL dapat membedakan id dari tiap
server.
(3)
Setelah itu restrart MySQL
(4)
Kemudian masuk ke MySQL console kembali dengan perintah :
mysql -u root
-p{ password yang sesuai dengan user };
Keterangan
: tidak ada spasi antara -p dengan password.
(5)
Jalankan perintah :
GRANT
REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'some_password';
Keterangan
: ganti some_password dengan password yang sesuai
(6)
Jalankan perintah :
FLUSH
PRIVILEGES;
USE
mydatabase;
FLUSH TABLES
WITH READ LOCK;
SHOW MASTER
STATUS;
Keterangan
: ganti mydatabase sesuai dengan nama database yang akan direplikasi
(7)
perintah di atas akan menghasilkan contoh keluaran sebagai berikut : (Lain
komputer akan lain keluaran)
+---------------+----------+--------------+------------------+
| File |
Position | Binlog_do_db | Binlog_ignore_db |
+---------------+----------+--------------+------------------+
| mysql-bin.009
| 130 | mydatabase | |
+---------------+----------+--------------+------------------+
1 row in set
(0.00 sec)
(8)
Kemudian jalankan perintah unlock sebagai berikut :
UNLOCK
TABLES;
(9)
Langkah terakhir adalah keluar dari console dengan perintah :
quit;
Tahap-II, Setting Pada Komputer
Slave
(1)
Buat database yang sama dengan milik master, misal : mydatabase
mysql -u root
-p{ password yang sesuai dengan user };
Create
database mydatabase;
quit;
(2)
Buka file my.ini
(3)
Jika anda menggunakan paket Wampserver, maka tambahkan opsi berikut ini pada
bagian bawah tag [wampmysqld]
server-id = 2
master-host=192.168.1.1
master-user=slave_user
master-password='some_password'
master-connect-retry=60
replicate-do-db=mydatabase
Misal
: komputer master memiliki IP 192.168.1.1
Jika
terdapat 2 slave maka slave ke-2 memiliki server-id=3 dan seterusnya
(4)
Setelah itu restart MySQL
(5)
Kemudian masuk lagi ke console dengan perintah :
mysql -u root
-p{password yang sesuai dengan user};
STOP SLAVE;
(6)
Jalankan perintah :
CHANGE MASTER
TO MASTER_HOST='192.168.100.1'
->
MASTER_USER='slave_user'
->
MASTER_PASSWORD='some_password'
->
MASTER_LOG_FILE='mysql-bin.009'
->
MASTER_LOG_POS=130;
START SLAVE;
(7)
Langkah terakhir adalah keluar dari console dengan perintah :
quit;
Keternagan :
Jika
konfigurasi dan perintah di atas dijalankan dengan benar, maka segala perubahan
data yang terjadi pada database server master akan selalu diikuti oleh server
lain yang berfungsi sebagai slave. Demikian tutorial sederhana ini saya buat,
semoga bermanfaat bagi para pencinta ilmu komputer di Indonesia.
OK
SOB.....Sekian posting saya mengenai Implementasi Sistem Database Terdistribusi Pada MySQL.
Semoga
bermanfaat.....!!
» JANGAN LUPA LIKE N
Komentarnya Yeach...
Postingnya bagus dan menarik
BalasHapusmakasih sob, n makasih jg atas kunjungannya....
Hapussalam sahabat