Jumat, 26 Mei 2017

[Lab 9.9] Konfigurasi MySQL Database Replication


Assalamualaikum Warahmatullahi Wabarakatuh...

Alhamdulillah, sampai dipenghujung lab 9 ini, masih dalam materi yang sama yaitu database dan masih menggunakan aplikasi yang sama pula yaitu menggunakan MySQL. Sebelumnya apa itu database replication? Database replication adalah suatu metode  yang digunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lain. Dan selanjutnya, mensinkronisasikan antar database, sehingga konsistensi data dapat terjamin. Database replication dapat digunakan pada banyak sistem manajemen database, yang dimana proses ini terbentuk dari hasil sikronisasi antara  master dengan slave / node, atau bisa dibilang antara yang asli dan salinannya, yang tentunya memerlukan beberapa konfigurasi tambahan agar replication ini dapat bekerja. Dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringan lokal maupun internet. adapun tujuan dibuatnya database replication adalah agar bersifat redudant, ketika salah satu server mati maka akan masih ada pengganti lainnya. Selain itu, database replication ini digunakan sebagai backup dari suatu database untuk mengantisipasi kehilangan data akibat serangan DOS ataupun faktor lainnya. Berikut Topologi yang kita gunakan untuk melakukan konfigurasi, lalu bagaimanakah konfigurasinya? Bismillah mari kita coba sama-sama...




1. Yang pertama kali kita lakukan adalah menambahkan domain untuk node1 nya atau yang berperan sebagai slave didalam folder forward.kamilah1 (kamilah.com) yang terdapat dalam direktori /var/named/


2. Tambahkan script seperti gambar dibawah ini yang diberi warna hijau, disini kita membahkan 1 domain yaitu node1.kamilah.com dengan menggunakan ip 192.168.43.30.


3. Setelah itu kita akan melakukan pengeditan pada file reverse.kamilah yang terletak pada direktori /var/named/


4. Selanjutnya ketikkan script seperti gambar dibawah ini yang sudah diberi tanda berwarna hijau, dimana kita menambahkan satu domain yaitu node1.kamilah.com dengan ip 192.168.43.30.


5. Selanjutnya kita restart service namednya supaya konfigurasi yang kita lakukan dapat berjalan dengan baik dan benar.


6. Lakukan pengetesan dengan mengetikkan perintah dig (domain_yang_kita_buat).


7. Dan hasilnya seperti gambar dibawah ini yang menandakan kita telah berhasil menambahkan satu domain.


8. Yang pertama kali kita lakukan adalah mengatur UUID nya. UUID? Ya, UUID / Universally unique identifier merupakan standar identifier unik yang digunakan dalam permbuatan software, Pada dasarnya UUID ini merupakan angka 128 bit yang disajikan dalam bentuk pengelompokan hexadesimal. Dan UUID ini digunakan pada database replication di MySQL untuk proses sinkronisasi antara server master dan server slave dengan cara mencocokan. Karena server slave disini hasil dari clone server master maka UUID nya sama. dan kita harus menggantikannya terlebih dahulu supaya tidak terjadi bentrok. Dan disini kita coba ganti UUID dari server slave nya dengan cara mengetikkan perintah seperti gambar dibawah ini.


9. Dan sekarang kita ganti UUID nya, awalnya UUID nya dengan nomor belakang 3, namun kita ganti menjadi 4. dengan kata lain, server master UUID nya dengan nomor berlakang 3.

-- Konfigurasi server master DB --

1. Selanjutnya kita akan mengedit file konfigurasi MySQL yang terletak pada direktori /etc/opt/rh/rh-mysql57/my.cnf.d/ 


2. Tambahkan script yang letaknya dibawah script [mysqld] seperti yang sudah saya tandai warna hijau pada gambar dibawah ini. 

Keterangan :

  • log-bin=mysql-bin merupakan binary logging sql, yaitu mysql.bin
  • server-id=101 merupakan penamaan untuk si server, dalam pengaturannya kita tidak bisa menggunakan kata-kata atau kalimat, hanya bisa menggunakan angka.

3. Selanjutnya kita restart service MySQL supaya konfigurasi yang kita lakukan dapat berjalan dengan baik.


4. Sekarang kita coba masuk ke shell MySQL dengan menggunakan perintah mysql -u root -p dan masukkan passwordnya sesuai yang kita buat sebelumnya. Setelah itu kita akan mematikan mode slave nya pada server master / controller, dengan menggunakan perintah stop slave;


5. Jika sudah maka selanjutnya kita kan membuat user replication dan passwordnya dengan mengetikkan perintah grant replication slave on *.* to (namauser)@'%' identified by '(passwordnya)'


6. Ketikkan perintah flush privileges; yang merupakan sinonim dari reload, dan perintah ini menyuruh server untuk membaca ulang tabel hak akses. Jika ingin keluar dari shell MySQL maka cukup ketikkan perintah exit.


7. Kita akan memasukan service mysql kedalam firewall, setelah itu jangan lupa untuk reload.


-- Konfigurasi server slave (replica) --

1. Selanjutnya kita akan mengedit file konfigurasi MySQL yang terletak pada direktori /etc/opt/rh/rh-mariadb101/my.cnf.d/ 


2. Tambahkan script yang letaknya dibawah script [mysqld] seperti yang sudah saya tandai warna hijau pada gambar dibawah ini. 

Keterangan :
  • log-bin=mysql-bin merupakan binary logging mysql, yaitu mysql.bin
  • server-id=102 merupakan penamaan untuk si server slave, dalam pengaturannya kita tidak bisa menggunakan kata-kata atau kalimat, hanya bisa menggunakan angka. dalam pengaturannya juga id nya jangan sampai sama dengan server master.
  • read_only=1 karena diatur menjadi 1, ini berarti tidak ada pembaruan yang diizinkan kecuali dari pengguna dengan hak superuser atau server slave yang diperbarui dari master. Variabel read_only berguna bagi server slave untuk memastikan tidak ada pembaruan yang sengaja dilakukan di luar apa yang dilakukan pada master.
  • report-host=node1.kamilah.com merupakan host dari server slave yang kita atur sebelumnya, dan ini bisa diatur menjadi nama domain, hostname, atau ip address server slave

3. Selanjutnya kita restart service MySQL nya supaya konfigurasi yang kita lakukan dapat berjalan dengan baik dan benar. 


4. Kita akan memasukan service MySQL kedalam firewall, setelah itu jangan lupa untuk reload.


-- Konfigurasi server master DB --

1. Sekarang kita coba masuk ke shell MySQL dengan menggunakan perintah mysql -u root -p dan masukkan passwordnya sesuai yang kita buat sebelumnya. setelah itu jalankan perintah flush untuk semua tabel yang terbuka dan tabel baru diperbolehkan dibuka dengan read lock sampai perintah unlock tables dijalankan. 


2. Setelah itu kita akan melihat informasi mengenai status binary log files pda master yang nantinya akan digunakan dan dicocokan pada server slave, caranya dengan mengetikkan perintah show master status; 


3. Selanjutnya ketikkan perintah mysqldump, dimana Mysqldump ini merupakan bagian dari paket database relasional mysql yang memungkinkan kita untuk "dump" database, atau kumpulan database, untuk backup atau transfer ke server SQL lain.

Keterangan :
  • --all-databases digunakan untuk dump semua tabel di semua database
  • --lock-all-tables digunakan untuk mengunci semua tabel di semua database
  • --events digunakan untuk dump events terhadap database yang di dump
  • mysql_dump.sql adalah file yang terbuat dari proses mysqldump.
  • ls untuk melihat isi dari directory.


4. Sekarang kita coba masuk ke shell MySQL dengan menggunakan perintah mysql -u root -p dan masukkan passwordnya sesuai yang kita buat sebelumnya. Jika sudah, maka selanjutnya ketikkan perintah unlock tables;. Adapun fungsi unlock tables ini untuk melepas global (semua) read lock yang diperoleh pada perintah flush tables with read lock; dan ketikkan perintah quit untuk keluar dari shell MySQL.


5.  Copy file mysql_dump.sql yang telah dibuat tadi  ke host server slave menggunakan perintah scp. Scp atau secure copy yang proses kirimnya melalui enkripsi seperti ssh. Dan disini kita mengcopy nya ke directory /tmp/ pada slave.


-- Konfigurasi server slave (replica) --

1. Sekarang kita akan masukan file mysql_dump.sql yang telah dicopy tadi kedalam sql server slave. ini dilakukan supaya file dump pada slave sama dengan yang ada pada master, dengan  kata lain antar keduanya tersinkronisasi.


2. Sekarang kita coba masuk ke shell MySQL dengan menggunakan perintah mysql -u root -p dan masukkan passwordnya sesuai yang kita buat sebelumnya. Ketikkan perintah seperti gambar dibawah ini yang diberi tanda berwarna hijau, untuk melakukan join antar server slave dengan server masternya.

Keterangan :

  • change master to merupakan suatu opsi untuk mangatur parameter yang digunakan oleh server slave untuk terhubung dan berkomunikasi dengan server master selama replikasi.
  • master_host merupakan alamat host dari server master.
  • master_user merupakan user replica pada server master.
  • master_password merupakan password dari user replica tersebut.
  • master_log_file dan master_log_pos merupakan status binary log files beserta lokasinya pada server master. Ini harus sama dengan status master yang ada pada server master, yang telah kita lihat sebelumnya.

3.  Sekarang kita akan mengaktifkan mode slavenya dengan mengetikkan perintah start slave;


4. Selanjutnya kita akan melihat status slave untuk melakukan verifikasi apakah antara server master dengan server slave berhasil tersinkronisasi atau tidak dengan mengetikkan perintah show slave status\G; dan pastikkan pada Slave_IO_Running dan Slave_SQL_Running statusnya adalah Yes.


-- Verifikasi di client --

1. Lakukan verifikasi dengan cara membuka browser dan mengetikkan (domain_server_master)/phpmyadmin dan nantinya akan muncul halaman login seperti gambar dibawah ini, maka isikan user dan passwordnya sesuai yang kita atur sebelumnya.


2. Dan pada server master ini kita akan membuat satu database dengan nama sesuka kita dan contohnya disini namanya ReplicationMila9.9.


3. Dan terlihat disini sudah berhasil kita buat databasenya.


4.  Sekarang kita coba login server slave dengan cara mengetik (domain_server_slave)/phpmyadmin dan kita login dengan user dan password yang sama.


5. Dan terlihat disini bahwa database yang kita buat sebelumnya pada server master itu terdapat pada server slave.


Sekian yang dapat saya sampaikan, kurang lebihnya mohon maaf
Semoga bermanfaat, Wassalamualaikum Warahmatullahi Wabarakatuh...

0 komentar:

Posting Komentar

sedikit informasi

klik tanda plus di pojok kanan atas untuk keperluan lainnya. Terimakasih..