Anda di halaman 1dari 14

Replikasi Bagian II Database Master-Slave

Mata Kuliah Basis Data Terdistribusi





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.

Anda mungkin juga menyukai