IT Bootcamp

Belajar Mengenai Jaringan, Server, dan Website.

LAB 9.9. Konfigurasi Database MySQL 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.

Untuk membuat database replication di MySQL, proses sinkronisasi antara server master dan server slave berjalan dengan cara mencocokan UUID. Universally Unique Identifier (UUID) adalah standar identifier unik yang digunakan dalam pembuatan perangkat lunak. UUID pada dasarnya adalah angka 128 bit, yang disajikan dalam bentuk pengelompokan heksadesimal. 

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 UUID

Pada kali ini Server slave saya merupakan hasil clone dari server master, maka dari itu, saya harus mengganti UUID server slave nya terlebih dahulu, karena jika UUID nya tidak diganti, maka proses sinkronisasi antara server master dan server slave akan gagal, dikarenakan UUIDnya sama atau bentrok. Dalam melakukan cloning server ini sangat tidak disarankan karena dapat mempengaruhi berjalannya replikasi. Oleh karena itu jika anda membangun database server replikasi menggunakan MySQL jangan sekali-kali menggunakan cloning server serperti yang saya lakukan.

1. Edit file auto.cnf untuk mengubah server UUID nya.
[root@gilang ~]# nano /var/opt/rh/rh-mysql57/lib/mysql/auto.cnf
Lalu ganti server uuid-nya, disini saya hanya mengganti ujungnya saja. Bisa anda lihat gambar dibawah merupakan UUID dari server controller (20493) dan server node(20494).
Edit UUID
UUID Server Controller

Edit UUID
UUID Server Node

Konfigurasi Server Controller

1. Hal pertama yang harus anda lakukan adalah mengedit file rh-mysql57-mysql-server.cnf yang terletak pada direktori /etc/opt/rh/rh-mysql57/my.cnf.d/ Terlebih dahulu buka file rh-mysql57-mysql-server.cnf menggunakan editor nano atau vi.
Membuka file rh-mysql57-mysql-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 rh-mysql57-mysql-server.cnf


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


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


4. Setelah itu, buat user replikasinya beserta passwordnya (grant replication slave on *.* to "namauser"@'%' identified by 'password untuk user')
Membuat user replika


5. Lalu kita jalankan command flush privileges; untuk membaca ulang tabel hak akses (reload).
Membaca ulang tabel hak akses


6. Selanjutnya tambahkan service mysql kedalam firewall, kemudian lakukan reload pada firewall.
Tambahkan service mysql

Konfigurasi Server Node

1. Hal pertama yang harus anda lakukan adalah mengedit file rh-mysql57-mysql-server.cnf yang terletak pada direktori /etc/opt/rh/rh-mysql57/my.cnf.d/ Terlebih dahulu buka file rh-mysql57-mysql-server.cnf menggunakan editor nano atau vi.
Membuka file rh-mysql57-mysql-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 rh-mysql57-mysql-server.cnf


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


3. Selanjutnya tambahkan service mysql kedalam firewall, kemudian lakukan reload pada firewall.
Tambahkan service mysql

Konfigurasi Server Controller

1. Pertama, kita masuk ke shell mysql 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;
Melakukan flush table


2. 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 status binari


3. 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.



4. Setelah itu, masuk kembali ke shell mysql 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 tabel


5. 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
Memasukkan file mysql_dump.sql


2. Kemudian masuk ke shell mysql dengan menggunakan command mysql -u root -p. 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.000001',
master_log_pos=732;
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.


3. Sekarang kita jalankan mode slavenya.
Menjalankan mode slave


4. 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 biasa, 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 mgilangdb.
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