Jun 4, 2017

LAB 9.9 Replication Database MySQL CentOS 7

Pengertian

Database Replication adalah suatu metode yang digunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lain. Selanjutnya, mensinkronisasikan antar database, sehingga konsistensi data dapat terjamin. Database Replication dapat digunakan pada banyak sistem manajemen Daatabase, yang dimana proses ini terbentuk dari hasil sikronisasi antara master dengan slave, atau 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.
Tujuan pembuatan database raplication ini adalah membuat pengganti apabila server utama mati. Selain itu juga sebagai backup dari database guna mengantisipasi hal-hal yang tidak diinginkan terjadi pada database.

Persiapan

Persiapan yang diperlukan masih sama yaitu Sistem Operasi CentOS 7 sebagai server dan Sistem Operasi Windows sebagai client. Disini saya telah mengkonfigurasi web server Apache sebelumnya. Pastikan server terhubung ke internet.

Topologi


  • IP Address Server Master (Controller) = 192.168.43.100/24
  • IP Address Server Slave (Node 1) = 192.168.43.200/24
  • IP Address Client = 192.168.43.101/24

Konfigurasi Server Slave ( Replication )

Pada MySQL, proses sinkronisasi server master dengan server slave (replication) menggunakan UUID. UUID sendiri adalah Universally Unique Identifier yang merupakan standar identifier untik dalam pembuatan perangkat lunak. Karena disini server slave yang saya gunakan merupakan hasil clone dari server master, maka saya perlu mengubah UUID server slave terlebih dahulu agar peroses sinkronisasi berhasil.

1.  Buka file auto.cnf untuk mengedit UUID server slave.


2.  Untuk mengubahnya cukup dengan mengganti angka terakhir dari UUID. Setelah itu save.



Konfigurasi Server Master ( Controller )

1.  Edit file konfigurasi mysql dengan perintah berikut.


2.  Temukan bagian [mysqld] kemudian tambahkan script yang telah saya tandai berikut.

Keterangan :
  • log-bin=mysql-bin merupakan binary logging sql, yaitu mysql.bin.
  • server-id=1 merupakan penamaan untukserver, ini tidak bisa menggunakan kata-kata atau kalimat, hanya berlaku untuk angka.

3.  Kemudian restart service mysql agar konfigurasi dapat running.


4.  Setelah itu akses shell mysql dengan perintah mysql -u root -p.


5.  Lalu matikan mode slave pada server master dengan perintah stop slave;.


6.  Selanjutnya buat user baru yaitu replication beserta passwordnya.


7.  Kemudian jalankan perintah flush privileges yang tujuannya sama dengan reload, disini reload meminta server untuk membaca ulang tabel hak akses.


8.  Keluar dari mysql dengan perintah exit.


9.  Berikutnya masukkan service mysql kedalam firewall lalu reload firewall.


Konfigurasi Server Slave ( Replication )

1.  Pada server node 1, edit file rh-mysql57-mysql-server.cnf yang merupakan file konfigurasi mariadb. Buka file dengan perintah nano.


2.  Temukan bagian [mysqld] dan tambahkan script yang telah saya tandai berikut ini.

Keterangan :
  • log-bin=mysql-bin merupakan binary logging mysql, yaitu mysql.bin.
  • server-id=2 merupakan penamaan untuk server, ini tidak bisa menggunakan kata-kata atau kalimat, hanya berlaku untuk angka. Dan pastikan ID yang Anda buat berbeda antar server master dengan server slave ini.
  • 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.dimas.name merupakan host dari server slave itu sendiri, Anda dapat mengaturnya menjadi nama domain, hostname, atau IP Address dari server slave.

3.  Restart service mysql agar konfigurasi yang telah dilakukan dapat running.


4.  Setelah itu masukkan service mysql kedalam firewall lalu reload firewall.


Konfigurasi Server Master ( Controller )

1.  Masuk kembali kedalam shell mysql dengan perintah berikut.


2.  Kemudian lakukan flush terhadap semua table yang terbuka. Tabel baru hanya diperbolehkan dibuka dengan read lock sampai perintah unlock tables; dijalankan.



3.  Setelah itu lihat informasi status tentang binary log files pada server master, dimana informasi ini akan digunakan dan dicocokan pada server slave nantinya.


4.  Lalu keluar dari shell mysql dengan perintah exit.


5.  Lakukan perintah mysqldump, Mysqldump ini adalah bagian dari paket database relasional mysql yang memungkinkan Anda 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 yang ada.
  • --lock-all-tables = digunakan untuk mengunci semua tabel pada semua database.
  • --events = digunakan untuk Dump events terhadap database yang di dump.
  • mysql_dump.sql = merupakan  file yang terbuat dari proses mysqldump.

6.  Kembali ke shell mysql dengan perintah berikut.


7.  Kemudian jalankan perintah unlock tables yang bertujuan untuk melepas global (keseluruhan) read lock yang diperoleh dari perintah flush tables with read lock tadi.


8.  Masukkan perintah exit untuk keluar dari shell.


9.  Setelah itu copy file mysql_dump.sql tadi ke host server master dengan perintah scp. Scp merupakan secure copy, dimana proses ini hampir sama dengan ssh yaitu melalui enkripsi. Disini saya mengcopy file tersebut ke direktori /tmp.


Konfigurasi Server Slave ( Replication )

1.  Setelah file mysql_dump.sql tadi telah dicopy, masukkan file tersebut kedalam sql server slave. Ini dilakukan agar pada kedua server memiliki file dump yang sama sehingga sinkron.


2.  Setelah itu masuk ke shell mysql.


3.  Kemudian lakukan join pada server slave ke server master dengan perintah berikut.

Keterangan :
  • change master to = merupakan opsi untuk mengatur 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.

4.  Selanjutnya jalankan kembali mode slave dengan perintah start.


5.  Untuk pengecekan, lihat status antara server master dengan server slave. Jika sudah sinkron maka status pada bagian Slave_IQ_Running dan Slave_SQL_Running adalah yes.



Verifikasi

1.  Untuk verifikasi, akses server master melalui phpmyadmin kemudian buat database.


2.  Pastikan database berhasil dibuat.


3.  Setelah itu akses server slave kemudian lihat daftar database, pastikan database yang dibuat pada server master terdapat juga pada server slave tersebut.



Selesai.
Sekian untuk konfigurasi Replication Database MySQL, bila ada kekurangan saya minta maaf. Selamat mencoba dan semoga bermanfaat.

0 komentar:

Post a Comment