Lab 9.9 Database Replication Settings On MySQL
Assalamu'alaikum Wr Wb,
Pada kesempatan kali ini, saya akan melanjutkan materi dari database MySQL di CentOS 7, yaitu Konfigurasi Database Replication pada Database MySQL di CentOS 7.
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 :
Pada Database Replication di MySQL ini. Proses sinkronisasi antara server master dan server slave berjalan dengan cara mencocokan UUID.
UUID itu apa? 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 hexadesimal.
Dan karena disini 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.
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
Konfigurasi Server Master Database
nano /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf
- log-bin=mysql-bin adalah binary logging sql, yaitu mysql.bin
- server-id=16 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 16.
3). Setelah itu, restart service mysql nya dengan command
systemctl restart rh-mysql57-mysqld
mysql -u root -p
stop slave;
grant replication slave on *.* to "namauser"@'%' identified by 'password untuk user'
flush privileges;Flush privileges merupakan sinonim dari reload. Perintah ini akan menyuruh server untuk membaca ulang tabel hak akses.
Kemudian kita keluar dari shell mysql dengan perintah
exit
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
Konfigurasi Server Slave (Replica)
nano /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf
- log-bin=mysql-bin adalah binary logging mysql, yaitu mysql.bin
- server-id=116 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 116. 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.ivan.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). Lalu, restart service mysql agar konfigurasi yang baru dilakukan bisa berjalan
systemctl restart rh-mysql57-mysqld
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
Konfigurasi Server Master Database
mysql -u root -p
flush tables with read lock;
show master status;Lalu kita keluar dari shell mysql
exit
- --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.
5). Setelah itu, masuk ke shell mysql dengan command
mysql -u root -p
unlock tables;Perintah unlock tables; ini digunakan untuk melepas global (semua) read lock yang diperoleh pada perintah flush tables with read lock;
Kemudian, kita keluar dari shell mysql
exit
scp mysql_dump.sql "host server slave":"tempat file akan dicopy"
Konfigurasi Server Slave (Replica)
mysql -u root -p < "letak file mysql_dump.sql"
mysql -u root -p
- 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.
4). Selanjutnya, kita jalankan mode slave nya dengan perintah
start slave;
show slave status\GJika berhasil tersinkronisasi, maka pada Slave_IO_Running dan Slave_SQL_Running statusnya adalah Yes.
Verifikasi Pada Client
Oke, cukup sekian untuk postingan saya kali ini, tunggu postingan saya yang selanjutnya ya, semoga bisa bermanfaat..
Wassalamu'alaikum Wr Wb.
Comments
Post a Comment