- Replication Database
Replikasi
database bisa di artikan pengcopyan data atau mentransfer data dari
database ke database lain yang tersimpan pada komputer yang berbeda
dalam satu 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.
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).
server-id
= 12345
log_bin
= /var/log/mysql/mysql-bin.log
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
Setelah
kita selesai dengan konfigurasi file my.cnf
sekarang
kita masuk ke MySQL dengan perintah:
- #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> CREATE DATABASE tes;
- mysql> USE tes;
- mysql> FLUSH TABLES WITH READ LOCK;
- mysql> SHOW MASTER STATUS;
Maka akan
muncul keluaran seperti ini:
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
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>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;
Silahkan
ditest, harusnya kalau tidak ada langkah yang salah, jika di Master
server terjadi perubahan database, maka database Slave server akan
ikut berubah.
2. Web Service
2. 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.
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.
Untuk contoh webservicenya bisa di lihat di sini
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.
Untuk contoh webservicenya bisa di lihat di sini
0 comments:
Post a Comment