Lab 9.9, Replication Setting on MySQL
Hai young society. Kembali lagi lita untuk melanjutkan lab kemarin, yaitu bagaimana caranya konfigurasi PhpMyAdmin di mysql, untuk kamu yang belum baca bisa dilihat disini. Oke disini kita akan mengkonfigurasi Replication database. Sebelumnya, apa itu Replication Database?
Database Replication adalah metode yang dilakukan untuk menyalin dan mendistribusikan data dari database 1 ke databsase lainnya. Selanjutnya database tersebut akan salin sinkron sehingga konsistensi data terjamin. Proses replication ini terjadi jika terjadinya sinkronisasi antara server master dan slave, atau database yang asli dengan salinanya.
Tujuan dari pembuatan replication ini adalah agar dapat membackup server utama jika terjadi down atau mati, maka server slave akan menggantikan server utama. Oke langsung saja kita konfigurasi :
Topology :
Pada Database Replication di MySQL ini, proses sinkronisasi antara server master dan server slave berjalan dengan cara mencocokan UUID. UUID atau Universally Unique Identifier (UUID) adalah standar identifier yang digunakan dalam pembuatan perangkat lunak. UUID pada dasarnya adalah angka 128 bit, yang disajikan dalam bentuk pengelompokan hexadesimal.
Dan karena disini Server slave Author merupakan hasil clone dari server master, maka dari itu, Author 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, karena UUIDnya sama yang nantinya mengakibatkan bentrok. Dan berikut adalah cara mengubah server uuid terhadap mysql :
Pertama, edit file auto.cnf untuk mengubah server UUID nya
nano /var/opt/rh/rh-mysql57/lib/mysql/auto.cnf
Lalu ganti UUIDnya. Pada kasus kali ini Author hanya mengganti 1 digit angka terakhirnya saja. Disini Author ganti dari angka 5 menjadi 4. Dan untuk penggantian angka ini sebenarnya bebas asalkan UUID server master dan slave nya tidak sama.
Konfigurasi Server Database Master :
1. Pertama kita edit file mysqlnya yang berada di /etc/opt/rh/rh-mysql57/my.cnf.d/ .
nano /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf
2. Lalu cari baris [server] dan tambahkan sytax seperti dibawah ini.
log-bin=mysql-bin adalah binary logging sql, yaitu mysql.bin
server-id=121 merupakan penamaan untuk si server, dan penamaan ini tidak bisa menggunakan huruf, tetapi hanya bisa menggunakan angka saja. Disini Author mengaturnya menjadi angka 121. Dan untuk penamaan ini kita bebas menamakannya apa saja, asalkan menggunakan angka.
3. Kemudian kita restart service mysql nya.
systemctl restart rh-mysql57-mysqld
4. Setelah itu kita masuk ke shell mysql nya dengan perintah mysql -u root -p dan kita berhentikan mode slave pada server master dengan perintah stop slave; .
5. Selanjutnya kita buat user replicationnya. Pada kasus ini Author membuat user dengan nama akmalrifqi dan passwordnya 123456.
6. Kemudian jalan kan perintah flush privileges. Perintah ini berarti juga menyuruh server untuk mereload, dan menyuruh server untuk membaca ulang tabel hak akses. Setelah kita flush, kita keluar dari shell dengan perintah exit; .
7. Kemudian kita masukan service mysql nya kedalam firewall dengan perintah seperti dibawah ini. Setelah kita masukan kemudian kita reload firewallnya.
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
Konfigurasi Server Slave (Replica) :
8. Jika tadi kita konfigurasi file maridb-server.cnf di server master, kali ini kita konfigurasi file maridb-server.cnf di server slave.
nano /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf
9. Lalu tambahkan syntax seperti dibawah ini.
log-bin=mysql-bin adalah binary logging mysql, yaitu mysql.bin
server-id=120 merupakan penamaan untuk si server, dan penamaan ini tidak bisa menggunakan huruf, tetapi hanya bisa menggunakan angka saja. Disini Author mengaturnya menjadi angka 120. Dan untuk penamaan ini kita bebas menamakannya apa saja, asalkan menggunakan angka.
read_only=1, disini kita atur 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 agar server slave tidak bisa mengkonfigursi database, tapi hanya dapat melihat database saja.
report-host=node1.1frekuensi.com 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.
10. Kemudian kita restart service mysql nya.
systemctl restart rh-mysql57-mysqld
11. Kemudian kita masukan juga service mysql nya ke firewall server agar client dapat mengakses service ini juga.
Konfigurasi Server Database Master :
12. Pertama kita masuk dulu ke shell mysql nya. kemudian masukan perintah flush tables with read lock; , untuk mem flush dan mengunci semua table yang terbuka.
13. Lalu lakukan perintah show master status; , untuk melihat file dan posisitionnya. Kemudian exit untuk keluar dari shell.
14. Selanjutnya, jalankan perintah mysqldump, Mysqldump merupakan bagian dari paket database mysql yang memungkinkan kamu untuk membuang database atau kumpulan database untuk dibackup atau ditransfer ke server SQL yang lain.
--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.
15. Kemudian kita masuk ke shell mysql, dan kita unlock tables nya. Kemudian exit untuk keluar dari shell.
16. Lalu copy file mysql_dump.sql yang telah kita buat sebelumnya ke host server slave dengan menggunakan perintah scp. Scp ini adalah secure copy, dimana proses kirim ini akan melalui enkripsi seperti ssh. Disini Author akan mengcopy file nya ke directory /tmp/ pada server slave.
scp mysql_dump.sql node1.1frekuensi.com:/tmp/ .
Konfigurasi Server Slave (Replica) :
17. Pertama kita masukan file mysql_dump.sql yang sudah tercopy tadi kedalam sql server slave. Ini dilakukan agar file dump pada server slave sama dengan yang ada pada server master, sehingga nanti nya bisa tersinkronisasi.
mysql -u root -p < /tmp/mysql_dump.sql
18. Lalu kita masuk ke shell mysqlnya.
mysql -u root -p
19. Lalu masukan command seperti ini sesuai konfigurasi yang kamu miliki.
change master to merupakan perintah untuk mengatur parameter yang digunakan oleh server slave agar terhubung dan bisa berkomunikasi dengan server master selama replikasi.
master_host merupakan alamat ip dari server master.
master_user merupakan user replica pada server master, ini sesuai dengan yang kita buat pada step no. 5.
master_password merupakan password dari user replica tersebut. Ini sesuai dengan yang kita buat pada step no. 5.
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. Isikan perintah ini sesuai yang seperti pada step no. 13.
20. Lalu kita jalan kan perintah start slave; .
21. Dan untuk melihat apakah sudah saling terkoneksi antara server master dan slave, kita lakukan perintah show slave status\G . Dan jika Slave_IO_Running dan Slave_SQL Running sudah yes maka sudah saling tersinkronisasi.
Vertifikasi dari Client :
22. Disini coba kamu akses server database master melalui web melalui domain kamu dan login dengan menggunakan user root.
23. Dan disini kita coba untuk membuat database dengan server master database.
24. Pastikan database sudah terbuat.
25. Lalu coba akses server database slave malalui web juga, dan login dengan user root.
26. Dan pastikan juga database yang tadi kita buat di server master sudah ada otomatis di server slave.
Nah segitu dulu untuk lab kali ini. Jika ada kesalahan gambar atau penjelasan mohon di koreksi dan bantu Author merevisi nya. Sekian dulu perjumpaan kita. Semoga bermanfaat dan Wassalamualaikum..WR .WB































Comments
Post a Comment