Lab 9.6. [CentOS7] Database Server [MariaDb] : Replication settings - Yord's Note

Latest

Catatan kecil seputar Informatika dan Umum

Wednesday, June 7, 2017

Lab 9.6. [CentOS7] Database Server [MariaDb] : Replication settings


Assalamu'alaikum Wr Wb,

Pada kesempatan kali ini, saya ingin melanjutkan materi dari Database MariaDB di CentOS 7, yaitu Konfigurasi Database Replication pada MariaDB. 

Database Replication itu apa ?

Database Replication adalah metode yang digunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lain. Yang selanjutnya, mensinkronisasikan antar database, sehingga konsistensi data bisa terjamin. Database Replication juga dapat digunakan pada banyak sistem manajemen Daatabase, yang mana proses ini terbentuk dari hasil sikronisasi antara  master dengan slave, atau antara Server Database yang asli dengan 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 dibuatnya Database Replication adalah agar Server bersifat redudant, jadii ketika salah satu server mati maka akan ada Server pengganti lainnya. Selain itu, Database Replication ini juga bisa digunakan sebagai backup dari suatu database untuk mengantisipasi kehilangan data akibat serangan DDOS atau yang lainnya.

Topologi :


Konfigurasi Server Master Database

1). Pertama, kita buat Subdomain untuk server DB replication terlebih dulu, caranya dengan mengedit file forward DNS


Setelah itu tambahkan syntaks seperti gambar dibawah, jangan lupa untuk sesuaikan IP nya


2). kemudian edit juga di reverse nya


masukkan pula sintaksnya seperti dibawah ini dan samakan/sesuaikan hostname dengan IP nya dan juga domain nya untuk PTR.


3). lalu restart DNS nya /Named nya untuk memperbarui konfigurasi tadi.


4). lalu kita coba test domain untuk node1 dengan perintah dig dan usahakan harus berhasil.


5). Setelah itu, edit file mariadb-server.cnf yang terletak pada direktori /etc/opt/rh/rh-mariadb101/my.cnf.d/


6). Lalu cari baris [server] kemudian tambahkan syntaks seperti yang sudah saya tandai warna biru pada gambar dibawah



keterangan :
  • log-bin=mysql-bin adalah binary logging sql, yaitu mysql.bin
  • server-id=101 merupakan penamaan atau bisa dibilang pengkodean untuk si server, dan penamaan ini tidak bisa menggunakan kata-kata atau kalimat, tetapi hanya berlaku untuk angka saja. Disini saya mengaturnya menjadi angka 101
7). Selanjutnya, restart service mariadb nya, agar konfigurasi yang sudah dilakukan bisa berjalan


8). Setelah itu kita masuk ke shell mariadb dengan perintah
mysql -u root -p
kemudian matikan mode slave pada server master dengan menggunakan perintah
stop slave;

9). Setelah itu, buat user replication beserta passwordnya
grant replication slave on *.* to "namauser"@'%' identified by 'password untuk user'
Lalu kita jalankan perintah
flush priveleges;
Flush privileges merupakan sinonim dari reload. Perintah ini akan menyuruh server untuk membaca ulang tabel hak akses. 
Kemudian kita keluar dari shell mariadb dengan perintah exit.


10). Selanjutnya, masukkan service mariadb kedalam firewall kemudian reload firewall nya


Konfigurasi Server Slave (Replica)

1). Pertama, kita edit file mariadb-server.cnf yang terletak pada direktori /etc/opt/rh/rh-mariadb101/my.cnf.d/


2). Kemudian cari baris [server] kemudian tambahkan syntaks seperti yang sudah saya tandai warna hijau pada gambar dibawah


keterangan :

  • log-bin=mysql-bin adalah binary logging mysql, yaitu mysql.bin
  • server-id=242 merupakan penamaan/pengkodean untuk server, dalam penamaan ini, kita tidak bisa menggunakan kata-kata atau kalimat, namun hanya berlaku untuk angka saja. Disini saya mengaturnya menjadi angka 102. Dan ingat, penamaan ini harus dibedakan id nya dengan server master, jangan sama seperti server master
  • read_only=1, karena diatur menjadi 1, ini artinya 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.dirham.net merupakan host dari server slave itu sendiri, report-host ini bisa juga kalian atur menjadi nama domain, hostname, atau ip address dari server slave kalian

3). Setelah itu, restart service mariadb nya, agar konfigurasi yang baru dilakukan bisa berjalan


4). Selanjutnya, asukan service mariadb kedalam firewall kemudian reload firewall nya


Konfigurasi Server Master Database

1).  Pertama, kita masuk ke shell mariadb terlebih dulu


2). Setelah itu lakukan flush kepada semua tables yang terbuka. Dan tabel baru hanya diperbolehkan untuk dibuka dengan read lock sampai perintah unlock tables; dijalankan
flush tables with read lock;
Kemudian, kita lihat informasi status tentang binary log files pada server master, yang dimana 
show master status;
informasi ini akan digunakan dan dicocokan pada server slave nantinya
Lalu kita keluar dari shell mariadb dengan perintah
exit

3). Selanjutnya, jalankan perintah mysqldump, Mysqldump merupakan bagian dari paket database relasional mysql yang memungkinkan Anda untuk "dump" membuang database, atau kumpulan database untuk dibackup atau ditransfer ke server SQL yang lain.


keterangan :
  • --all-databases digunakan untuk men-Dump semua tabel pada semua database
  • --lock-all-tables digunakan untuk mengunci semua tabel pada semua database
  • --events digunakan untuk men-Dump events terhadap database yang di dump
  • mysql_dump.sql adalah file yang terbuat dari proses mysqldump ini.

4). Setelah itu, masuk ke shell mariadb dengan perintah berikut
mysql -u root -p
lalu jalankan perintah berikut
unlock tables; 
setelah itu kita keluar dulu dengan perintah berikut :
exit 

5). Lalu copy file mysql_dump.sql yang telah terbuat sebelumnya, ke host server slave dengan menggunakan perintah scp. Scp ini adalah secure copy, dimana proses kirim ini akan melalui enkripsi seperti ssh. Disini saya akan mengcopy file nya ke directory /tmp/ pada server slave.


Konfigurasi Server Slave (Replica)

1). Pertama, masukan file mysql_dump.sql yang sudah tercopy tadi kedalam sql server slave. Hal ini dilakukan agar file dump pada server slave sama dengan yang ada pada server master, sehingga nanti nya bisa tersinkronisasi.


2). Kemudian masuk ke shell mariadb dengan menggunakan perintah 
mysql -u root -p
dan dilanjutkan dengan melakukan join ke server master.


keterangan :

  • change master to merupakan opsi untuk mengatur parameter yang digunakan oleh server slave agar terhubung dan bisa 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 yang berada pada server master. Dan ini harus sama dengan status master yang ada pada server master tersebut.

3). Selanjutnya, kita jalankan mode slave nya dengan perintah berikut


Setelah itu, kita lihat status slave untuk pengecekan apakah antara server master ataupun slave berhasil tersinkronisasi atau tidak dengan menggunakan perintah berikut


Verifikasi Pada Client

1). Untuk pengujiannya, disini saya akan mencoba membuat database pada server master, dan kalian bebas menentukan nama untuk databasenya


2). Setelah itu, akses server slave nya. Dan coba cek apakah database yang dibuat pada server master, juga ada pada server slave. Jika ada, itu berarti konfigurasi database replication yang sudah dilakukan sudah berhasil. disini ceritanya log in dulu menggunakan user yang sdah dibuat.


alhasil berhasil sudah, database atau schema yang dibuat di server master berhasil dibaca di server slave dengan konten web.


No comments:

Post a Comment

Popular