laporan praktikum federated table

Upload: odi-nugraha

Post on 18-Oct-2015

28 views

Category:

Documents


0 download

TRANSCRIPT

Replication - Federated TableMata Kuliah Basis Data Terdistribusi

Oleh :Moh. Tri Hidayat(112410101006)Qilbaaini Effendi M (112410101066)

PROGRAM STUDI SISTEM INFORMASIUNIVERSITAS JEMBER2014

Konsep Dasar Federated TableSecara garis besar, Tabel MySQL dibedakan menjadi dua jenis, yaitu Transaction Safe dan Non-Transaction Safe. Transaction Safe merupakan tabel yang mendukung transaksi. Dalam proses transaksi kita dapat memperkecil terjadinya kesalahan dalam pemrosesan data. Jenis tabel ini yang saya gunakan dalam penerapan aktifitas koding. Namun sayang, tabel jenis ini performa dalam hal kecepatan lebih lambat daripada jenis tabel non-transaction safe karena membutuhkan resource yang lebih banyak. Mungkin tabel jenis ini lebih memprioritaskan kapasitas/data daripada kecepatan. Non Transaction Safe merupakan tabel yang tidak mendukung adanya transaksi. Garis besarnya jenis tabel ini kebalikan dari Transaction Safe. Tabel jenis ini mempunyai kelebihan dalam hal kecepatan. Namun tidak ada toleransi dalam kesalahan pemrosesan data. Misalkan ada kesalahan dalam update data, maka data tersebut tidak dapat dikembalikan. Tabel berjenis MyISAM, MEMORY, ARCHIVE termasuk dalam jenis ini

FEDERATED : Tabel ini digunakan untuk mengakses data pada tabel lainnya. Tabel jenis ini tidak mempunyai data apapun seperti halnya tabel MRG_MyISAM. 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.

A FEDERATED tabel terdiri dari 2 elemen: Sebuah remote server dengan tabel database, yang terdiri dari definisi tabel (disimpan di file .frm) dan tabel yang terkait. Tipe tabel dari tabel remote mungkin jenis yang didukung oleh remote server mysqld, termasuk MyISAM atau InnoDB. Sebuah local server dengan tabel database, dimana definisi tabel cocok dengan tabel terkait di remote server. Definisi tabel tersimpan di dalam file .frm. Namun, tidak ada file data di local server. Tetapi, definisi tabel mengandung string koneksi yang mengarah ke remote tabel.

Praktik Federated TableDalam praktikum federated tabel ini, hamper sama dengan praktikum replikasi sebelumnya, yaitu menggunakan 4 server database yaitu Server A (192.168.100.2), Server B (192.168.100.3), Server C (192.168.100.4), dan Server D (192.168.100.5). Server A merupakan Master Server bagi Server B dan C, sedangkan Server D bukan merupakan Slave.

Konfigurasi IP pada Server A, Server B, Server C, dan Server DDilakukan PING ke tiap-tiap server untuk mengecek apakah tiap server telah terkoneksi .

Ping dari A ke B dan CPing dari B ke A dan D

Ping dari C ke APing dari D ke B

Dalam Praktikum ini, pada Server A, Server B, Server C telah dipasang database bernama kepegawaian. Pada Server A, database kepegawaian berisi tabel employees, departments, dan dept_emp. Server B yang merupakan Slave dari Server A, mereplikasi tabel employees dan dept_emp dari Server A. Server C yang merupakan Slave dari Server A, hanya mereplikasi tabel departments dari Server A. Setting konfigurasi: Pada Komputer Master Server A:Pada komputer Master Server, pada file my.cnf, yang berada pada path \opt\lampp\etc\my.cnf. Kemudian dilakukan tambahan configurasi dibawah [mysqld] dengan :

server-id = 2log-bin = mysql-bininnodb_flush_at_trx_commit = 1sync-binlog = 1binlog-do-db = kepegawaianLebih lengkapnya dapat dilihat dari gambar berikut:

Pada gambar diatas, kepegawaian adalah nama database yang akan dipergunakan untuk tahapan replikasi, database yang akan secara otomatis disimpan pada Slave Server. Setelah perubahan disimpan , mulai service lampp melalui terminal.

Pada Komputer Server B :Cari file my.cnf pada Komputer Server B. Sama seperti pada komputer Master Server, file my.cnf kami berada pada path \opt\lampp\etc\my.cnf. Bila sudah buka dengan akses sebagai Super User lalu tambahkan dibawah [mysqld] beberapa settingan dibawah ini :

server-id = 3log-bin = mysql-bininnodb_flush_log_at_trx_commit = 1sync-binlog = 1replicate-do-db = kepegawaianreplicate-ignore-table = kepegawaianLengkapnya bisa dilihat disettingan kami pada gambar dibawah ini: Pada setting my.cnf di atas, Server B melakukan replikasi terhadap database kepegawaian, ditambakan perintah replicate-ignore-table = kepegawaian untuk tidak melakukan replikasi terhadap tabel kepegawaian.departments.Untuk langkah selanjutnya, sama dengan replikasi pada praktikum sebelumnya.Setelah Server B telah sukses terkoneksi sebagai slave dari A, tambahkan syntax seperti di bawah ini. Perintah tersebut digunakan untuk memberi hak akses kepada user terhadap database yang akan digunakan dalam federated tabel.

Pada Komputer Server C:Cari file my.cnf pada Komputer Server C. Sama seperti pada komputer Master Server, file my.cnf kami berada pada path \opt\lampp\etc\my.cnf. Bila sudah buka dengan akses sebagai Super User lalu tambahkan dibawah [mysqld] beberapa settingan dibawah ini :

server-id = 4log-bin = mysql-bininnodb_flush_log_at_trx_commit = 1sync-binlog = 1replicate-do-table = kepegawaian.departmentsLengkapnya bisa dilihat disettingan kami pada gambar dibawah ini:

Pada setting my.cnf di atas, Server C hanya melakukan replikasi terhadap tabel kepegawaian.departments. Hal tersebut terlihat dari perintah replicate-do-table = kepegawaian.departments.Untuk langkah selanjutnya, sama dengan replikasi pada praktikum sebelumnya.Setelah Server C telah sukses terkoneksi sebagai slave dari A, tambahkan syntax seperti di bawah ini. Perintah tersebut digunakan untuk memberi hak akses kepada user terhadap database yang akan digunakan dalam federated tabel.

Pada Komputer Server D:Cari file my.cnf pada Komputer Server B. Sama seperti pada komputer Master Server, file my.cnf kami berada pada path \opt\lampp\etc\my.cnf. Bila sudah buka dengan akses sebagai Super User lalu tambahkan dibawah [mysqld] beberapa settingan dibawah ini :

server-id = 5federatedLengkapnya bisa dilihat disettingan kami pada gambar dibawah ini:

Pada gambar di atas, perintah federated digunakan untuk mengaktifkan storage engine federated.Langkah selanjutnya adalah membuat database dan federated tabel untuk masing-masing tabel yang ada di server B dan C. Create database fed_kepegawaian.

Create tabel fed_employees dari tabel employees yang ada di Server B.

Create tabel fed_dept_emp dari tabel dept_emp yang ada di Server B.

Create tabel fed_departments dari tabel departments yang ada di Server C. Setelah proses create tabel selesai, di Server D, akan terdapat 3 federated tabel yang terkoneksi dengan tabel-tabel yang ada di Server B dan Server C.

Pengujian Perubahan Data pada tiap Servera. Tabel-tabel yang ada di database kepegawaian di Server A:

Hasil select tabel employees

Hasil select tabel dept_emp

Hasil select tabel departments

b. Tabel-tabel yang ada di database kepegawaian di Server B:

Hasil select tabel employees

Hasil select tabel dept_emp

c. Tabel-tabel yang ada di database kepegawaian di Server C:

Hasil select tabel departments

d. Tabel-tabel yang ada di database fed_kepegawaian di Server D:

Hasil select tabel fed_departments

Hasil select tabel fed_dept_emp

Hasil select tabel fed_employess

e. Hasil join dengan menggunakan query JOIN: