Ø Replikasi Database
Replikasi Database / Database Replication adalah suatu fitur teknologi pada dunia pemrograman database yang memungkinkan suatu database untuk mereplikasi atau men-copy 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.
Untuk membuat replikasi ini minimal di butuhkan 2 komputer yang saling terkoneksi, satu komputer sebagai master server dan yang satunya lagi sebagai slave server. Master server sendiri berfungsi sebagai pusat dari pengolahan data, sedangkan slave master berfungsi pencatat sekaligus replikasi/pengcopyan data dari master server.
Gambar 1
Di atas ini adalah gambaran
setruktur replikasi database yang akan di implementasikan pada web nantinya.
Sekarang kita buat replikasinya.
Pertama-tama siapkan semua
kebutuhan yaitu 2 mesin berbasis Ubuntu yang telah diinstal MySQL. Nah mesin
pertama (misal IP : 192.168.1.5) yang akan kita gunakan sebagai Master dan yang
kedua (misal IP: 192.168.1.1) sebagai Slave, pastikan terkoneksi dalam jaringan
dan tidak ada masalah dengan port yang digunakan MySQL (defaultnya 3306).
Ø
Konfigurasi Master Server
Adapun yang harus dilakukan
adalah:
Membolehkan (enable) networking untuk MySQL, sehingga MySQL di mesin ini bisa
diakses dari jaringan/berbagai IP Address. Caranya dengan memastikan pada my.cnf
(biasanya di /etc/mysql/my.cnf) 2 baris, ‘skip-networking’ dan
‘bind-address=127.0.0.1″ tidak aktif dengan menambahkan karakter komentar (#)
di awal barisnya, sehingga menjadi :
# skip-networking
# bind-address = 127.0.0.1
Selanjutnya setup lokasi file log-bin, id-server dan nama database (di tutorial ini kita akan menggunakan database tes).
Selanjutnya setup lokasi file log-bin, id-server dan nama database (di tutorial ini kita akan menggunakan database tes).
server-id = 12345
log_bin = /var/log/mysql/msql-bin.log
max_binlog_size = 100M = 10
binlog_do_db = tes
Agar konfigurasi baru bisa langsung berfungsi, silahkan restart MySQL dengan perintah:
max_binlog_size = 100M = 10
binlog_do_db = tes
Agar konfigurasi baru bisa langsung berfungsi, silahkan restart MySQL dengan perintah:
#/etc/init.d/mysql restart
- Konfigurasi MySQL Master Server
# mysql -u root -p
Maka prompt-nya akan berubah dari
$ (atau #) menjadi mysql> . Nah disini kita akan membuat user baru database
MySQL yang akan diberi hak untuk melakukan replikasi;
mysql> GRANT REPLICATION SLAVE ON *.* TO 'tiptop' @ '%' IDENTIFIED BY 'tiptop';
mysql> FLUSH PRIVILEGES;
Keterangan = Username 'tiptop' dan Password 'tiptop' silahkan ganti sesuai keinginan. Setelah itu kita ambil informasi binary log dari database yang kita ingin replikasi,
mysql> FLUSH PRIVILEGES;
Keterangan = Username 'tiptop' dan Password 'tiptop' silahkan ganti sesuai keinginan. Setelah itu kita ambil informasi binary log dari database yang kita ingin replikasi,
mysql> CREATE DATABASE tes;
mysql> USE tes;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
Maka akan muncul keluaran seperti ini :
mysql> USE tes;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
Maka akan muncul keluaran seperti ini :
Gambar 2
Simpan informasi ini untuk
digunakan pada konfigurasi di mesin Slave. Setelah itu jangan lupa unlock dulu
semua table tadi, dan keluar dengan perintah :
mysql> UNLOCK TABLES;
mysql> quit
- Konfigurasi Slave Server
Edit file my.cnf yang
berada pada folder /etc/mysql/my.cnf dengan perintah:
#nano /etc/mysql/my.cnf
server-id = 12
master-host=192.168.1.5
master-user=tiptop
master-password=tiptop
master-connect-retry=60
replicate-do-db=tes
Keterangan: nilai server-id, dapat diganti dengan angka integer positif selain 12345 yang sudah dipakai oleh Master. Setelah selesai restart MySQLnya dengan perintah:
master-host=192.168.1.5
master-user=tiptop
master-password=tiptop
master-connect-retry=60
replicate-do-db=tes
Keterangan: nilai server-id, dapat diganti dengan angka integer positif selain 12345 yang sudah dipakai oleh Master. Setelah selesai restart MySQLnya dengan perintah:
#/etc/init.d/mysql restart
- Konfigurasi MySQL Slave Server
Setelah kita selesai dengan
konfigurasi file my.cnf sekarang kita masuk ke MySQL di
terminal dan jalankan, perintah berikut ini :
#mysql -u root -p
#mysql -u root -p
mysql> SLAVE STOP;
mysql> CHANGE MASTER TO MASTER_HOST=’192.168.1.5′, MASTER_USER=’tiptop’, MASTER_PASSWORD=’tiptop‘,
MASTER_LOG_FILE=’mysql-bin.000001‘,
MASTER_LOG_POS=187;
mysql>START SLAVE;
mysql>FLUSH PRIVILEGES;
mysql> SHOW SLAVE STATUS \G
mysql>exit;
Saat ditest dan kalau tidak ada langkah yang salah, jika di Master server terjadi perubahan database, maka database Slave server akan ikut berubah.
mysql> CHANGE MASTER TO MASTER_HOST=’192.168.1.5′, MASTER_USER=’tiptop’, MASTER_PASSWORD=’tiptop‘,
MASTER_LOG_FILE=’mysql-bin.000001‘,
MASTER_LOG_POS=187;
mysql>START SLAVE;
mysql>FLUSH PRIVILEGES;
mysql> SHOW SLAVE STATUS \G
mysql>exit;
Saat ditest dan kalau tidak ada langkah yang salah, jika di Master server terjadi perubahan database, maka database Slave server akan ikut berubah.
Ø Web Service
Web service merupakan layanan di
dalam suatu lingkungan web yang terdiri dari method yang siap pakai. Web
service bersifat independent (tidak tergantung pada platform), karena melakukan
pertukaran data dengan XML. Teknologi web service memungkinkan kita dapat
menghubungkan berbagai jenis software yang memiliki platform dan sistem operasi
yang berbeda.
Jadi, kita tetap mendapatkan
sebuah potongan informasi dari suatu website tanpa harus mengunjungi website
tersebut, cukup dengan mengetahui fungsi/method web service yang disediakan
oleh web itu. Kita dapat mengakses potongan informasi itu dengan meletakkan
fungsi/method itu pada aplikasi kita.
Untuk membuat web service ini di
butuhkan NuSOAP.
NuSOAP adalah library yang
digunakan untuk membangun web service berbasis SOAP yang
ditulis dengan menggunakan bahasa PHP. Dan library ini di
simpan di dalam client dan server.
Dalam membangun sebuah sistem
aplikasi berbasis web service, dibutuhkan dua komponen utama yaitu, server sebagai provider
entity dan client sebagai requester entity.
Di bawah ini adalah struktur
gambaran replikasi database sekaligus penggunaan Web Service :
Gambar 3
Di atas adalah gambar arsitektur
Replikasi Database dan Webservice, di mana ip master server (server) adalah 192.168.1.5 dan ip slave
master (server1) yang ke jaringan local adalah 192.168.1.1 sedangkan ip
publiknya 202.91.10.214. Master server (server)
ini hanya bisa di akses dari jaringan local saja sehingga di butuhkan
webservice agar bisa di akses dari jaringan public. Fungsi slave server (server1) di sini mereplikasi database
dari master server, didalam server1 (lab.akprind.ac.id)
di tanamkan server.php yang isinya adalah fungsi fungsi untuk menampilkan,
update, tambah dan delete, yang nantinya dapat di akses dari client (ayhez.16mb.com).
Untuk fungsi menampilkan
data (membaca data), database yang di akses adalah database slave server,
sedangkan untuk fungsi tambah, edit dan delete database yang digunakan adalah
database master server.
Jadi saat jaringan lokal mati
maka proses tambah, edit dan delete tidak berfungsi karena master server berada
pada jaringan lokal, tetapi untuk proses menampilkan data dapat berfungsi
karena database yang di akses adalah slave server yang berada pada jaringan
publik.
0 komentar:
Posting Komentar