Senin, 29 Juni 2015

BASIS DATA TERDISTRIBUSI “Fragmented Replication (federated query)”

1.      Persiapan :
Disini menggunakan Kali Linux.
Soal yang kami terima dari tugas ini adalah sebagai berikut :
PRAKTIKUM 5 BDT
·         server A merupakan master bagi server B dan C. server D BUKAN SLAVE server B ataupun C. Di server A, B, dan C terdapat database kepegawaian. Tabel yang ada di server A : employees, emp_dept, departements. Tabel yang ada di server B : employees, emp_dept. Tabel yang ada di server C : departements.
·         server B mereplikasi employees dan emp_dept dari A. server C mereplikasi departements dari A
·         settinglah agar D bisa melakukan join semua tabel dari B dan C SEOLAH-OLAH semua tabel database kepegawaian ada di D
·         hint : federated query


2.      Setting IP Address pada masing – masing server. Jika ingin mengganti IP bisa lewat terminal dengan mengetikkan : ifconfig eth0 IPBaru
Server A

Server B

Server C
Server D


3.      Cek IP Address dan lakukan pinging untuk mengatahui status transmisi (koneksi ) jaringan
Server A (192.168.56.101) ke Server B (192.168.56.102)

Server A (192.168.56.101) ke Server C (192.168.56.103)
Server B (192.168.56.102) ke Server D (192.168.56.104)

Server C (192.168.56.103) ke Server D (192.168.56.104)
4.      Setting my.cnf pada masing –masing server  . Hal pertama yang harus dilakukan adalah mencari file my.cnf. Pada kali ini memakai linux mint jadi kita bisa mencarinya pada direktori /etc/mysql) atau melalui terminal dengan perintah sudo leafpad /etc/mysql/my.cnf untuk KaliLinux  atau sudo pluma /etc/mysql/my.cnf  untuk LinuxMint setelah itu lakukan tambahan configurasi dibawah [mysqld]  seperti di bawah ini.
Server A         
             

Server B



Server C

Server D


Federated merupakan storage engine yang menawarkan kemampuan untuk menghubungkan server MySQL yang terpisah untuk membuat satu database logis dari banyak server fisik.
5.      Restart masing – masing mysql pada setiap server setelah melakukan konfigurasi pada my.cnf dengan cara :
Sudo /etc/init.d/mysql restart
6.      Masuk kedalam mysql pada masing masing server . Untuk Server A kita membuat user dan melakukan konfigurasi untuk melakukan replikasi berdasarkan user tertentu.


7.  Melakukan konfigurasi untuk server B sebagai Slave dan mengecek master status untuk mengetahui konfigurasi untuk replikasi sudah berhasil atau belum.

8.  Melakukan konfigurasi untuk server C sebagai Slave dan mengecek master status untuk mengetahui konfigurasi untuk replikasi sudah berhasil atau belum.
9.      Setelah master dan slave sudah terhubung, maka selanjutnya master / server A dapat membuat  database kepegawaian dan tabel ( pegawai , departemen dan dept_emp ) yang nantinya akan  direplikasi oleh server B (pegawai dan dep_emp) dan server C ( departemen) . Seperti pada gambar  di bawah ini:

10.  Cek tabel pada server B dan server C apakah database dan tabel yang direplikasi sudah masuk atau tidak.
Ø  Server B

Ø  Server C


1      11.  Pastikan koneksi Yes, Yes dan selanjutnya menambahkan query berikut ini di server B dan server C supaya server D yang bukan sebagai master atau slave bisa mem-federated atau mengambil data sesuai dengan kebutuhan.


Fungsi grant select on kepegawaian untuk melakukan proses replikasi semua tabel yang ada pada database kepegawaian untuk username ‘root dan IP server D dan diikuti dengan pengidentifikasian password. Sehingga server D bisa mengambil data yang ada deserver B dan C.
12.  Setelah terbentuk master slave pada server A sebagai master dan server B dan C sebagai slave. Maka selanjutnya kita membuat database federate tabel (*) untuk masing-masing tabel yang ada di server B dan C pada server D dengan syntax sebagai berikut:
(*)
FEDERATED : Tabel ini digunakan untuk mengakses data pada tabel lainnya. Tabel jenis ini tidak mempunyai data apapun .Tabel ini biasanya digunakan untuk mengakses tabel MySQL Remote. Tabel jenis ini juga tidak mendukung transaksi dan perintah DDL(Data Definition Language) dan tidak bisa mengetahui apabila telah terjadi perubahan Schema tabel pada tabel remote yang diakses. Server D membuat database fed_kepegawaian dan tabel (fed_pegawai , fed_departemen, fed_dept_emp)
Ø  Membuat database baru :


Ø  Membuat tabel fed_pegawai :

ENGINE=FEDERATED DEFAULT CHARSET = latin1 adalah Storage Engine yang kita gunakan. root adalah nama user dari server D. root adalah password dari server D. 192.168.56.102 adalah ip server B. 3306 adalah port yang digunakan. Kepegawaian  adalah nama database dari server B. pegawai adalah nama table dari database kepegawaian.
Ø  Membuat tabel fed_departemen :

ENGINE=FEDERATED DEFAULT CHARSET = latin1 adalah Storage Engine yang kita gunakan. root adalah nama user dari server D. root adalah password dari server D. 192.168.56.102 adalah ip server B. 3306 adalah port yang digunakan. Kepegawaian  adalah nama database dari server B. pegawai adalah nama table dari database kepegawaian.
Ø  Membuat tabel dept_emp :
Ø  Setelah membuat tabel, maka langkah selanjutnya adalah memeriksa data dan show semua tabel pada server D yang telah di replikasi dari server C dan B dengan cara menampilkan semua data dari tiap – tiap tabel fed yang dibuat.




Ø  Langkah adalah terakhir adalah melakukan join pada semua tabel dari B dan C seperti gambar dibawah ini.

Tidak ada komentar:

Posting Komentar