IT Bootcamp

Belajar Mengenai Jaringan, Server, dan Website.

LAB 9.6. Konfigurasi Database MariaDB Replication CentOS7

Konsep Dasar

Replikasi database merupakan suatu metode atau teknik yang digunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lain. Kemudian database tersebut akan saling mensinkronisasikan antar database untuk menjaga konsistensi. Dengan replikasi, data dapat didistribusikan ke lokasi yang berbeda dan pengguna yang jauh melalui LAN, WAN, Dial-up Connection, wireless connections, dan internet.

Topologi

Topologi

Konfigurasi Server Controller (Penambahan Domain)

1. Sebelum memulai melakukan konfigurasi replikasi database, terlebih dahulu kita buat domain atau identitas untuk server nodenya. Domain atau identitas tersebut digunakan untuk mengidentifikasi / sebagai identitas dari server nodenya. Untuk membuat domain untuk server node, lakukan editing pada file forward di server controller. Kemudian tambahkan identitas dengan nama node dan tambahkan juga ip address server nodenya.
Edit file forward


2. Setelah melakukan editing pada file forward, lakukan juga editing pada file reverse. Kemudian tambahkan identitas untuk server nodenya.
Edit file reverse


3. Setelah selesai melakukan editing pada file forward dan reverse, agar domain atau identitas server node yang telah ditambahkan tadi dapat berjalan, maka lakukan restart pada named.
Restart named


4. Kemudian cek domain atau identitas server node menggunakan perintah dig node.gilang.net. Maka akan muncul identitas server node pada question section dan answer section.
Mengecek domain

Konfigurasi Server Controller

1. Hal pertama yang harus anda lakukan adalah mengedit file mariadb-server.cnf yang terletak pada direktori /etc/opt/rh/rh-mariadb101/my.cnf.d/ Terlebih dahulu buka file mariadb-server.cnf menggunakan editor nano atau vi.
Membuka file mariadb-server.cnf

Cari script [server] kemudian tambahkan script berikut dibawah script [server].
log-bin=mysql-bin
server-id=101
log-bin=mysql-bin adalah binari logging sql, yaitu mysql.bin
server-id=101 merupakan penamaan atau bisa dikatakan sebagai pengkodean untuk server, dan penamaan ini tidak bisa menggunakan kata-kata atau kalimat, tetapi hanya berlaku untuk angka saja. Disini saya mengaturnya menjadi angka 101.
Edit file mariadb-server.cnf


2. Selanjutnya agar file mariadb yang telah kita konfigurasi tadi dapat berjalan, lakukan restart service mariadb nya, agar konfigurasi yang sudah dilakukan bisa berjalan.
[root@gilang ~]# systemctl restart rh-mariadb101-mariadb 


3. Setelah itu kita masuk ke shell mariadb menggunakan command mysql -u root -p kemudian nonaktifkan mode slave pada server master dengan menggunakan command stop slave; 
Nonaktifkan mode slave


4. Setelah itu, buat user replikasinya beserta passwordnya (grant replication slave on *.* to "namauser"@'%' identified by 'password untuk user') Lalu kita jalankan command flush privileges; untuk membaca ulang tabel hak akses (reload).
Membuat user replika


5. Selanjutnya tambahkan service mysql kedalam firewall.
[root@gilang ~]# firewall-cmd --permanent --add-service=mysql 
Kemudian lakukan reload pada firewall.
[root@gilang ~]# firewall-cmd --reload 

Konfigurasi Server Node

1. Hal pertama yang harus anda lakukan adalah mengedit file mariadb-server.cnf yang terletak pada direktori /etc/opt/rh/rh-mariadb101/my.cnf.d/ Terlebih dahulu buka file mariadb-server.cnf menggunakan editor nano atau vi.
Membuka file mariadb-server.cnf

Cari script [server] kemudian tambahkan script berikut dibawah script [server].
log-bin=mysql-bin
server-id=102
read_only=1
report-host=node.gilang.net
log-bin=mysql-bin adalah binari logging sql, yaitu mysql.bin
server-id=102 merupakan penamaan atau bisa dikatakan sebagai pengkodean untuk server, dan penamaan ini tidak bisa menggunakan kata-kata atau kalimat, tetapi hanya berlaku untuk angka saja. Disini saya mengaturnya menjadi angka 102. Perlu diingat bahwa server id pada kedua server harus berbeda.
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=node.gilang.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
Edit file mariadb-server.cnf


2. Selanjutnya agar file mariadb yang telah kita konfigurasi tadi dapat berjalan, lakukan restart service mariadb nya, agar konfigurasi yang sudah dilakukan bisa berjalan.
Restart mariadb


3. Selanjutnya tambahkan service mysql kedalam firewall.
[root@gilang ~]# firewall-cmd --permanent --add-service=mysql 
Kemudian lakukan reload pada firewall.
[root@gilang ~]# firewall-cmd --reload 

Konfigurasi Server Controller 

1. Pertama, kita masuk ke shell mariadb terlebih dulu menggunakan command mysql -u root -p setelah itu lakukan flush kepada semua tabel yang terbuka dan tabel baru hanya diperbolehkan untuk dibuka dengan read lock sampai perintah unlock tables; dijalankan. Untuk melakukan flush kepada semua tabel ketikkan command flush tables with read lock; Kemudian, kita lihat informasi status tentang binari log files pada server master, yang dimana informasi ini akan digunakan dan dicocokan pada server slave nantinya. Untuk mengecek informasi status binari log files ketikkan command show master status; Maka disana akan terdapat tabel, yang berisi informasi file, posisi, dan lainnya. Ingat nama file tersebut dan posisinya untuk kita cocokkan nanti.
Melihat informasi binari


2. Selanjutnya, kita jalankan perintah mysqldump, Mysqldump merupakan bagian dari paket database relasional mysql yang memungkinkan anda untuk melakukan "dump" membuang database, atau kumpulan database untuk dibackup atau ditransfer ke server SQL yang lain.
Melakukan dump
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.


3. Setelah itu, masuk kembali ke shell mariadb dengan menggunakan command mysql -u root -p lalu jalankan perintah unlock tables; Perintah unlock tables; ini digunakan untuk melepas global (semua) read lock yang diperoleh pada perintah flush tables with read lock; yang telah kita lakukan sebelumnya.
Melakukan unlock tables


4. Lalu copy file mysql_dump.sql yang telah dibuat 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. Saat melakukan copy file anda akan diminta memasukkan password dari server node. Kemudian tunggu sampai proses copy file selesai.
Copy file mysql_dump.sql


Konfigurasi Server Node

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 tersinkronisas. Untuk memasukkan file mysql_dump.sql kedalam sql server slave ketikkan command mysql -u root -p < /tmp/mysql_dump.sql Kemudian masuk ke shell mariadb dengan menggunakan command mysql -u root -p
Memasukkan file mysql_dump.sql

Setelah itu lakukan join menuju server master (server controller) dengan mengetikkan command change master to
Lalu masukkan script berikut satu persatu.
master_host='192.168.0.20',
master_user='replica',
master_password='gilang',
master_log_file='mysql-bin.000002',
master_log_pos=327;
Join server master
  Keterangan:
  • change master to merupakan 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 tersebut.
  • master_log_file dan master_log_pos merupakan status binari log files beserta lokasinya pada server master. Ini harus sama dengan status master yang ada pada server master.


2. Sekarang kita jalankan mode slavenya.
Menjalankan mode slave


3. Sekarang lihat status slave untuk pengecekan apakah antara server master ataupun slave berhasil tersinkronisasi atau tidak. Untuk mengeceknya gunakan command show slave status\G
Jika berhasil tersinkronisasi, pada Slave_IO_Running dan Slave_SQL_Running statusnya yaitu Yes.
Melihat sinkronisasi

Verifikasi

1. Akses database menggunakan domain utama, ketikkan gilang.net/phpmyadmin kemudian lakukan login menggunakan user root. Maka anda akan memasuki tampilan dashboard phpmyadmin. Untuk melakukan percobaan, cobalah buat database baru dengan nama gilang.
Mengakses database


2. Kemudian akses kembali database menggunakan domain node, ketikkan node.gilang.net/phpmyadmin kemudian lakukan login menggunakan user root. Maka anda akan memasuki tampilan dashboard phpmyadmin. Disana akan terdapat database yang dibuat pada domain utama karena kedua server (server controller dan node) saling melakukan sinkronisasi.
Mengakses database

Demikianlah artikel pada kali ini jika terdapat kesalahan kata pada artikel yang anda baca, saya mohon maaf sebesar-besarnya. Jika anda masih kurang paham atau kurang mengerti akan artikel yang saya sampaikan, anda dapat mengetikkan keluhan anda melalui kolom komentar. Terima kasih.

Tidak ada komentar

Posting Komentar

Search Panel