Oleh : Moh. Tri Hidayat (112410101006) Qilbaaini Effendi M (112410101066)
PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS JEMBER 2014
Konsep Dasar Model Replikasi Daisy Chain
Model replikasi daisy chain merupakan suatu model replikasi dimana suatu server dapat menjadi slave server sekaligus master server bagi slave lainnya. Model replikasi daisy chain biasanya digunakan ketika dalam beberapa kasus, dimana terdapat banyak mesin harus mereplikasi satu server yang sama. Hal ini dapat menyebabkan beban yang sangat besar bagi master. Atau bila replikasi dilakukan antara slave dan master yang terpisah sangat jauh jaraknya. Model daisy chain dapat menawarkan kecepatan replikasi yang lebih baik dari model replikasi lain.
Praktik Replikasi Praktik proses replikasi database ini dilakukan dengan database MySQL. Pada MySQL sendiri sudah mendukung konsep teknologi Replikasi namun tidak secara default langsung terseting untuk melakukan proses replikasi. Kita mesti menyeting terlebih dahulu agar bisa melakukan proses ini. Satu hal yang penting saat penyetingan proses Replikasi adalah sudah ada 4 komputer yang terkoneksi / terhubung dan 4 komputer tersebut sudah ter-install MySQL. Pada praktik kali ini digunakan virtual box sebagai pengganti komputer yang saling terhubung, pada virtual box telah diinstal Linux Mint sebagai sistem operasinya. Dalam proses replikasi database terdapat 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, dan Server B merupakan Master Server bagi Server D.
Konfigurasi IP pada Server A, Server B, Server C, dan Server D Dilakukan PING dari Master Slaver ke Server Slave ataupun sebaliknya untuk mengecek apakah komputer dan virtual box telah terkoneksi .
Ping dari A ke B dan C Ping dari B ke A dan D
Ping dari C ke A Ping dari D ke B
Dalam Praktikum ini, pada masing-masing server telah dipasang database bernama dbase, yang berisi tabel T1 dan T2. Tabel T1 berisi kolom T1_A dan T1_B. tabel T2 berisi kolom T2_A dan T2_B. Ditentukan bahwa Server C, hanya mereplikasi tabel T1 dari Server A sedangkan Server B mereplikasi tabel T1 dan T2. Server D hanya mereplikasi tabel T2 dari Server B. 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 :
Lebih lengkapnya dapat dilihat dari gambar berikut: server-id = 2 log-bin = mysql-bin innodb_flush_at_trx_commit = 1 sync-binlog = 1 binlog-do-db = dbase
Pada gambar diatas, dbase adalah nama database yang akan dipergunakan untuk proses replikasi, database yang akan secara otomatis disimpan pada Slave Server. Setelah perubahan disimpan , mulai service lampp melalui terminal.
Setelah XAMPP dimulai, masuk ke dalam sql console.
Kemudian masuk pada konsol mysql dengan user root lalu buat user yang akan melakukan proses replikasi. Caranya dengan mengetikan perintah ini :
Setelah user dibuat, gunakan perintah grant replication slave untuk memberikan hak akses pada user.
Setelah itu, cek status Master dengan mengetikkan perintah berikut:
Pada gambar, setelah perintah show master status dijalankan terdapat file log yang berisi perintah-perintah Master Server disimpan, posisi Master Server dan Database yang di replikasi.
Pada Komputer Server B (Slave sekaligus Master Server bagi Server D): a. Sebagai Slave 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 :
Yang terpenting adalah samakan nama database replikasinya dengan settingan pada Master Server dan server-id harus berbeda valuenya dengan server-id pada settingan di Master Server. Khusus pada Server B yang juga bertindak sebagai Master bagi Server D, ditambahkan setting log-slave-updates = 1, yang berfungsi agar log file diupdate apabila terjadi perubahan pada Server A. Lengkapnya bisa dilihat disettingan kami pada gambar dibawah ini:
o Jalankan mysql pada computer Slave Server melalui Terminal.
server-id = 3 log-bin = mysql-bin innodb_flush_log_at_trx_commit = 1 sync-binlog = 1 log-slave-updates = 1 binlog-do-db = dbase replicate-do-db = dbase o Kemudian masuk pada konsol mysql pada Server slave, dengan akses sebagai Super User terlebih dahulu, kemudian mengetikkan perintah Slave Stop.
Kemudian set master pada server slave dengan mengetikkan query seperti di bawah ini
Master host, user , password sama dengan server master. Untuk master logfile dan logpos dilihat dari show master status pada perintah di server master.
Kemudian Start Slave
Lengkapnya bisa dilihat pada gambar berikut:
Kemudian lihat status pada Slave Server apakah sudah terhubung atau belum dengan menggunakan perintah show slave status \G;, jika terhubung slave_IO dan slave_SQL akan mempunyai status YES dan data base kita akan terbaca
b. Sebagai Master Gunakan perintah grant replication slave untuk memberi hak akses replikasi pada user. User yang digunakan pada Server B, sama dengan user yang digunakan pada Server A, yaitu master_BDT dengan password master_BDT.
Setelah itu, cek status Master dengan mengetikkan perintah berikut:
Pada gambar, setelah perintah show master status dijalankan terdapat file log yang berisi perintah-perintah Master Server disimpan, posisi Master Server dan Database yang di replikasi.
Pada Komputer Server C (Slave dari Server A): 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 :
Lengkapnya bisa dilihat disettingan kami pada gambar dibawah ini: server-id = 4 log-bin = mysql-bin innodb_flush_log_at_trx_commit = 1 sync-binlog = 1 replicate-do-table = dbase.T1
o Jalankan mysql pada computer Slave Server melalui Terminal.
o Kemudian masuk pada konsol mysql pada Server slave, dengan akses sebagai Super User terlebih dahulu, kemudian mengetikkan perintah Slave Stop.
Kemudian set master pada server slave dengan mengetikkan query seperti di bawah ini
Master host, user , password sama dengan server master. Untuk master logfile dan logpos dilihat dari show master status pada perintah di server master.
Kemudian Start Slave
Lengkapnya bisa dilihat pada gambar berikut:
Kemudian lihat status pada Slave Server apakah sudah terhubung atau belum dengan menggunakan perintah show slave status \G;, jika terhubung slave_IO dan slave_SQL akan mempunyai status YES dan data base kita akan terbaca
Pada Komputer Server D (Slave dari 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 :
Lengkapnya bisa dilihat disettingan kami pada gambar dibawah ini:
o Jalankan mysql pada computer Slave Server melalui Terminal.
o Kemudian masuk pada konsol mysql pada Server slave, dengan akses sebagai Super User terlebih dahulu, kemudian mengetikkan perintah Slave Stop.
Kemudian set master pada server slave dengan mengetikkan query seperti di bawah ini
Master host, user , password sama dengan server master. Untuk master logfile dan logpos dilihat dari show master status pada perintah di server master.
Kemudian Start Slave
server-id = 5 log-bin = mysql-bin innodb_flush_log_at_trx_commit = 1 sync-binlog = 1 replicate-do-table = dbase.T2 Lengkapnya bisa dilihat pada gambar berikut:
Kemudian lihat status pada Slave Server apakah sudah terhubung atau belum dengan menggunakan perintah show slave status \G;, jika terhubung slave_IO dan slave_SQL akan mempunyai status YES dan data base kita akan terbaca
Perubahan data pada Master- Slave Untuk menguji apakah replikasi telah berjalan seperti yang diharapkan, dilakukan pengujian dengan insert data baru pada T1 dan T2 di Server A.
Hasil Select dari T1 dan T2 dari Server A setelah dilakukan Insert. Kemudian cek database dari Server B, C, D dengan perintah Select. - Server B
Hasil Select dari T1 dan T2 dari Server B Dari gambar diatas, dapat diketahui bahwa Server B melakukan replikasi penuh terhadap Server A. hal itu dapat dilihat dari hasil query select T1 dan T2 pada Server A dan B sama persis. - Server C
Hasil Select dari T1 dan T2 dari Server C
Dari gambar diatas, terlihat bahwa T1 mengalami perubahan, sedangkan T2 tidak mengalami perubahan sama sekali. Hal ini dikarenakan, Server C dikhususkan untuk mereplikasi tabel T1 yang ada pada Server A, sehingga semua perubahan yang terjadi pada tabel T2 di Server A tidak akan berpengaruh. - Server D
Hasil Select dari T1 dan T2 dari Server D
Dari gambar diatas, terlihat bahwa T2 mengalami perubahan, sedangkan T1 tidak mengalami perubahan sama sekali. Hal ini dikarenakan, Server C dikhususkan untuk mereplikasi tabel T2 yang ada pada Server B, sehingga semua perubahan yang terjadi pada tabel T1 di Server B tidak akan berpengaruh.