Professional Documents
Culture Documents
Konsep Dasar Federated Table Secara 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 nontransaction 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.
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 Table Dalam 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.
Dilakukan PING ke tiap-tiap server untuk mengecek apakah tiap server telah terkoneksi .
Ping dari C ke A
Ping 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 = 2 log-bin = mysql-bin innodb_flush_at_trx_commit = 1 sync-binlog = 1 binlog-do-db = kepegawaian
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 = 3 log-bin = mysql-bin innodb_flush_log_at_trx_commit = 1 sync-binlog = 1 replicate-do-db = kepegawaian replicate-ignore-table = kepegawaian
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.
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 = 4 log-bin = mysql-bin innodb_flush_log_at_trx_commit = 1 sync-binlog = 1 replicate-do-table = kepegawaian.departments
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.
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 = 5 federated
Pada gambar di atas, perintah federated digunakan untuk mengaktifkan storage engine federated. Langkah selanjutnya adalah membuat database dan federated tabel untuk masingmasing tabel yang ada di server B dan C. Create database fed_kepegawaian.
. 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.