[CentOS 7] LAB 9.9 Konfigurasi Database Replication MySQL


Pada Kesempatan kali ini admin mau sharing mengenai konfigurasi database replication dengan menggunakan MySQL

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. Replication database dapat digunakan pada banyak sistem manajemen Database, 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 dari dibuatnya database replication ini adalah agar bersifat redudant, Maksudnya ketika salah satu server mati maka nantinya masih ada pengganti lainnya. Selain itu, Replication database ini digunakan sebagai backup dari suatu database untuk mengantisipasi kehilangan data akibat serangan DOS ataupun faktor lainnya.

Untuk melakukannya kita memerlukan 2 server. yang satu bertindak sebagai master dan yang satunya lagi bertindak sebagai server slave. Untuk Server slave yang admin gunakan adalah hasil cloningan dari server master, oleh sebab itu pada si server slave sudah terinstall MySQL beserta phpMyAdmin.

Topologi
Berikut topologi yang digunakan untuk tutorial kali ini




Konfigurasi Server Master Fiqih
1) Pertam-tama, lakukan konfigurasi DNS pada server untuk menambahkan domain untuk node1. Disini, admin edit file forward zone nya terlebih dahulu.
nano /var/named/[file forward zone]


2) Didalam file forward tersebut, tambahkan sintak untuk si node1 nya seperti pada gambar dibawah ini dengan menambahkan pula IP address nya.



3) Lalu, edit juga file reverse zone nya
nano /var/named/[file reverse zone]


4) Didalam file reverse tersebut, tambahkan sintak untuk si node1 nya seperti pada gambar dibawah ini dengan menambahkan pula IP address nya.



5) Lakukan restart service named agar konfigurasi yang dilakukan sebelumnya berjalan (running)
systemctl restart named


6) Lakukan pengetesan domain node1 dengan perintah dig
dig [domain node 1]


7) Tahap ini adalah tahap penting bila kita ingin membuat database repliction menggunakan MySQL. Kenapa ? karena ketika UUID si Server Slave ini sama dengan UUID yang dimiliki si Server Master, maka kita tidak dapat melakukan database replication. Lakukan pada setiap server. Edit file auto.cnf yang terletak pada directory /var/opt/rh/rh-mysql57/lib/mysql/ 
nano /var/opt/rh/rh-mysql57/lib/mysql/auto.conf


8) Karena admin melakukan konfigurasi ini hanya untuk pembelajaran saja. Maka untuk membedakannya cukup ubah pada akhirannya saja. Pada Server Master admin atur 07 dan untuk Server Slave admin atur 08
[Server Master]

[Server Slave]



Konfigurasi Server Master fiqih
1) Edit file mariadb-server.cnf yang terletak di directory /etc/opt/rh/rh-mariadb101/my.cnf.d/
nano /etc/opt/rh/rh-mariadb101/my.cnf.d/mariadb-server.cnf


2) Buat barisan baru di bawah sintak [server] dan tambahkan sintak dibawah ini
[Line 9] [server] 
log-bin=mysql-bin
server-id=___
Keterangan :
  • log-bin=mysql-bin = Merupakan binary logging sql, yaitu mysql.bin 
  • server-id=110 = Merupakan penamaan untuk server master ini, penamaan ini tidak bisa menggunakan kata-kata atau kalimat, hanya berlaku untuk angka. Untuk server-id admin menggunakan angka pada oktat terakhir dari ip si server master yaitu 110


3) Lakukan restart service MySQL agar konfigurasi yang dilakukan sebelumnya dapat running (berjalan dengan baik)
systemctl restart rh-mysql57-mysqld


4) Tambahkan service mysql pada firewall pada Server Master
firewall-cmd --add-service=mysql --permanent
firewall-cmd --reload
 Keterangan :
  • firewall-cmd = Perintah untuk masuk ke settignan firewall
  • --add-service=mysql = Perintah untuk menambahkan service mysql pada firewall
  • --permanent = Perintah untuk menambahkan sesuatu pada firewall secara permanent 


5) Masuk ke shell MySQL
 mysql -u root  -p


6) Matikan mode slave pada Server Master. Masukkan command dibawah ini
stop slave;


7) Buat user replication beserta passwordnya. Bisa dilihat pada gambar dibawah ini bahwa admin gunakan nama user replica dan passwordnya admintkj123
grant replication slave on *.* to [nama user]@'%' identified by '[Password si User]';


8) Lalu lakukan perintah dibawah ini. Peritah tersebut digunakan untuk reload menyeluruh server untuk membaca ulang tabel hak akses. Lalu keluar dari shell MySQL
flush privileges;
exit



Konfigurasi Server Slave node1
1) Edit file mariadb-server.cnf yang terletak di directory /etc/opt/rh/rh-mariadb101/my.cnf.d/
nano /etc/opt/rh/rh-mariadb101/my.cnf.d/mariadb-server.cnf


2) Buat barisan baru di bawah sintak [server] dan tambahkan sintak dibawah ini
[Line 9] [server]
log-bin=mysql-bin
server-id=210
read_only=1
report-host=node1.fiqih.net
Keterangan :
  • log-bin=mysql-bin = Merupakan binary logging sql, yaitu mysql.bin 
  • server-id=110 = Merupakan penamaan untuk server master ini, penamaan ini tidak bisa menggunakan kata-kata atau kalimat, hanya berlaku untuk angka. Untuk server-id admin menggunakan angka pada oktat terakhir dari ip si server master yaitu 110
  • read_only=1 = Disini diatur menjadi 1, dengan demikian berarti tidak ada pembaruan yang diizinkan kecuali dari pengguna dengan hak superuser atau Server Slave yang diperbarui dari Server Master. Variabel read_only berguna bagi Server Slave untuk memastikan tidak ada pembaruan yang sengaja dilakukan di luar apa yang dilakukan pada Server Master
  • report-host=node1.fiqih.net = Untuk report-host admin atur menjadi nama domain dari si server slave itu sendiri. Akan tetapi bisa juga di atur menjadi Hostname, atau IP Address Server Slave


3) Lakukan restart service MySQL agar konfigurasi yang dilakukan sebelumnya dapat running (berjalan dengan baik)
systemctl restart rh-mysql57-mysqld


4) Tambahkan service mysql pada firewall pada Server Slave
firewall-cmd --add-service=mysql --permanent
firewall-cmd --reload



Konfigurasi Server Master Fiqih
1) Masuk ke shell MySQL. Dan lakukan flush terhadap semua tabel yang terbuaka
mysql -u root -p
flush tables with read lock;


2) Lalu masukkan perintah dibawah ini. Informasi pada tabel pada gambar dibawah ini akan digunakan atau dicocokkan pada Server Slave. Lalu keluad dari shell MySQL
 show master status;
exit


3) Lalu masukkan perintah dibawah ini. Perintah 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.
mysqldump -u root -p --all-databases --lock-all-tables --events > mysql_dump.sql
Keterangan :
  • --all-databases = Digunakan untuk Dump semua table di semua database 
  • --lock-all-tables = Digunakan untuk mengunci semua table di semua database 
  • --events = Digunakan untuk Dump events terhadap database yang di dump 
  • mysql_dump.sql = Merupakan hasil file yang terbuat dari proses mysqldump  


4) Masuk ke dalam shell MySQL. Kemudian lakukan unlock tabel yang berguna melepas (semua) read lock yang diperoleh pada perintah flush tables with read lock;, Setelah itu keluar dari shell MySQL
mysql -u root -p
unlock tables;
exit


5) Lalu copy file dump yang tadi telah di buat dari proses mysqldump ke Server Slave tepatnya di directory /tmp/ dengan menjalankan perintah scp, scp ini merupakan secure copy  yang merupakan pengiriman yang di enkripsi seperti ssh.
scp mysql_dump.sql [Domain si Server Slave]:/[file tujuan]/



Konfigurasi Server Slave node1
1) Setelah itu masukkan file hasil proses mysqldump ke database MySQL, yang nantinya terjadi sinkronisasi antara Server Master dan Server Slave
mysql -u root -p </[Letak File]/mysql_dump.sql


2) Masuk ke Shell MySQL
mysql -u root -p


3) Matikan mode slave terlebih dahulu. Lalu lakukan perintah dibawah ini untuk dapat saling singkron atau connect antara Si Server Master dan Server Slave
 stop slave;
change master to
master_host='[IP si Server Master]',
master_user='[User Replication]',
master_password='[Password si user replication]',
master_log_file='mysql-bin.000005 [sesuai informasi dari master status]',
master_log_pos=732 [sesuai informasi dari master status];


4) Aktifkan kembali mode slave pada Server Slave
start slave;


5) Setelah itu lihat apakah Si Server Master dan Server Slave berhasil saling singkron atau connect. Jika pada line Slave_IO_Running dan Slave_SQL_Running menunjukkan yes, maka berarti bahwa kedua server tersebut berhasil melakukan singkronisasi
show slave status\G



Verifikasi Client
1) Setting DNS Server pada client dengan mengarahkannya ke IP address si server. Lalu, lakukan verifikasi akses melalui web browser menggunakan nama domain dengan menambahkan /phpMyAdmin setelahnya, Jika berhasil maka akan muncul tampilan login. Disini admin login menggunakan user root dengan password yang digunakan saat login di mysql -u root -p


2) Coba buat database baru, lalu klik "Create"



3) Dan lihat apakah database yang dibuat sudah berhasil dibuat



4) Setelah itu coba akses subdomain yang dimiliki server slave yaitu node1.fiqih.net yang disertai /phpMyAdmin di belakangnya. Lalu, login menggunakan user root dengan password yang digunakan saat login di mysql -u root -p. Dan lihat apakah database dibuat di server master dapat dilihat juga pada Server Slave.















Cukup sekian materi [CentOS 7] LAB 9.9 Konfigurasi Database Replication MySQL yang dapat saya sharing

Tunggu tutorial selanjutnya
Terima kasih sudah berkunjung
Mohon maaf jika ada kekurangan dan
Semoga bermanfaat
Previous
Next Post »