MySQL Database Replication
Assalamu'alaikum Wr Wb
Bertermu lagi dengan saya Dimas Trihandika selaku Admin dari blog ini.
Pada lab 9.9 ini saya akan membahasa tutorial Konfigurasi Database Replication dengan menggunakan MySQL
Apa itu Database Replication
Database Replication adalah suatu metode yang digunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lain. Dan selanjutnya, mensinkronisasikan antar database, sehingga konsistensi data dapat terjamin. Database Replication dapat digunakan pada banyak sistem manajemen Daatabase, yang dimana proses ini terbentuk dari hasil sikronisasi antara master dengan slave, atau antara yang asli dan 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 ini adalah agar bersifat redudant, ketika salah satu server mati maka akan masih ada pengganti lainnya. Selain itu, Database Replication ini digunakan sebagai backup dari suatu database untuk mengantisipasi kehilangan data akibat serangan DOS ataupun faktor lainnya
Topology
Langkah konfigurasi :
Pada Database Replication di MySQL Proses sinkronisasi antara server master dan server slave yaitu dengan mencocokan UUID. Apa itu 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 hexadesimal.
Nah, karena disini server slave saya merupakan hasil clone dari server master, maka dari itu harus mengganti UUIDnya terlebih dahulu, karena jika tidak diganti maka proses sinkronisasi antara server master dan slave akan gagal, karena diketahui UUIDnya sama atau bentrok.
Berikut cara mengubah server uuid terhadap mysql :
Edit file auto.cnf untuk mengubah server UUID
Nah kemudian edit server-uuidnya, disini saya mengganti angka ujungnya saja, 4 menjadi 5
Jika sudah, jangan lupa save
2) Cari baris [mysqld] kemudian tambahkan syntak seperti yang sudah saya tandai warna biru pada gambar dibawah ini
3) Restart service mysql
4) Akses shell mysql
5) Matikan mode slave pada master
6) Buat user replication beserta passwordnya
7) Jalankan perintah flush privileges;. Flush Privileges adalah sinonim untuk reload. Perintah reload menyuruh server untuk membaca ulang tabel hak akses.
9) Masukan service mysql kedalam firewall kemudian reload
2) Cari baris [mysqld] kemudian tambahkan syntak seperti yang sudah saya tandai warna biru pada gambar dibawah ini
3) Restart service mysql agar konfigurasi yang baru berjalan
1) masuk ke shell mariadb
2) Lakukan flush terhadap semua tables yang terbuka. Tabel baru hanya diperbolehkan dibuka dengan read lock sampai perintah unlock tables; dijalankan
3) Kemudian lihat informasi status tentang binary log files pada master, yang dimana informasi ini akan digunakan dan dicocokan pada server slave nanti
4) Keluar dari shell mysql
5) Lakukan perintah mysqldump, Mysqldump ini adalah bagian dari paket database relasional mysql yang memungkinkan Anda untuk "dump" database, atau kumpulan database, untuk backup atau transfer ke server SQL lain.
6) Masuk ke shell mysql
7) Jalankan perintah unlock tables;. Penggunaan unlock tables ini yaitu untuk melepas global (semua) read lock yang diperoleh pada perintah flush tables with read lock;
8) Keluar dari shell mysql
9) Copy file mysql_dump.sql yang telah terbuat tadi ke host server slave menggunakan perintah scp. Scp ini adalah secure copy, yang dimana proses kirim ini melalui enkripsi seperti ssh. Pada contoh ini saya akan mengcopynya ke directory /tmp/ pada slave
2) Masuk ke shell mysql
3) Kemudian lakukan join pada server slave ke server master
5) Sekarang lihat status slave untuk pengecekan apakah antara server master ataupun slave berhasil tersinkronisasi atau tidak
Pada lab 9.9 ini saya akan membahasa tutorial Konfigurasi Database Replication dengan menggunakan MySQL
Apa itu Database Replication
Database Replication adalah suatu metode yang digunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lain. Dan selanjutnya, mensinkronisasikan antar database, sehingga konsistensi data dapat terjamin. Database Replication dapat digunakan pada banyak sistem manajemen Daatabase, yang dimana proses ini terbentuk dari hasil sikronisasi antara master dengan slave, atau antara yang asli dan 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 ini adalah agar bersifat redudant, ketika salah satu server mati maka akan masih ada pengganti lainnya. Selain itu, Database Replication ini digunakan sebagai backup dari suatu database untuk mengantisipasi kehilangan data akibat serangan DOS ataupun faktor lainnya
Topology
Langkah konfigurasi :
Pada Database Replication di MySQL Proses sinkronisasi antara server master dan server slave yaitu dengan mencocokan UUID. Apa itu 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 hexadesimal.
Nah, karena disini server slave saya merupakan hasil clone dari server master, maka dari itu harus mengganti UUIDnya terlebih dahulu, karena jika tidak diganti maka proses sinkronisasi antara server master dan slave akan gagal, karena diketahui UUIDnya sama atau bentrok.
Berikut cara mengubah server uuid terhadap mysql :
Edit file auto.cnf untuk mengubah server UUID
nano /var/opt/rh/rh-mysql57/lib/mysql/auto.cnf
Nah kemudian edit server-uuidnya, disini saya mengganti angka ujungnya saja, 4 menjadi 5
Jika sudah, jangan lupa save
Konfigurasi Server Master DB
1) Edit file konfigurasi mysql, yaitu rh-mysql57-mysql-server.cnf yang terletak di directory /etc/opt/rh/rh-mysql57/my.cnf.d/
nano /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf
- log-bin=mysql-bin merupakan binary logging sql, yaitu mysql.bin
- server-id=1 merupakan penamaan saja untuk si server, ini tidak bisa menggunakan kata-kata atau kalimat, hanya berlaku untuk angka. Pada contoh ini saya mengaturnya menjadi angka 1
3) Restart service mysql
systemctl restart rh-mysql57-mysqld
4) Akses shell mysql
mysql -u root -p
5) Matikan mode slave pada master
stop slave;
6) Buat user replication beserta passwordnya
grant replication slave on *.* to namauser@'%' identified by 'password';
7) Jalankan perintah flush privileges;. Flush Privileges adalah sinonim untuk reload. Perintah reload menyuruh server untuk membaca ulang tabel hak akses.
flush privilages;
8) Keluar dari shell mysql
exit
9) Masukan service mysql kedalam firewall kemudian reload
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
Konfigurasi Server Slave (Replica)
1) Edit file konfigurasi mysql, yaitu rh-mysql57-mysql-server.cnf yang terletak di directory /etc/opt/rh/rh-mysql57/my.cnf.d/
nano /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf
2) Cari baris [mysqld] kemudian tambahkan syntak seperti yang sudah saya tandai warna biru pada gambar dibawah ini
- log-bin=mysql-bin merupakan binary logging mysql, yaitu mysql.bin
- server-id=1 merupakan penamaan saja untuk si server, ini tidak bisa menggunakan kata-kata atau kalimat, hanya berlaku untuk angka. Pada contoh ini saya mengaturnya menjadi angka 2. Dan ingat ini harus dibedain id nya, jangan sama kaya server master
- read_only=1, karena diatur menjadi 1, ini berarti 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.dimas.name merupakan host dari server slave itu sendiri, bisa kalian atur menjadi nama domain, hostname, atau ip address server slave kalian
systemctl restart rh-mysql57-mysqld
4) Masukan service mysql kedalam firewall kemudian reload
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
Konfigurasi Server Master DB
mysql -u root -p
2) Lakukan flush terhadap semua tables yang terbuka. Tabel baru hanya diperbolehkan dibuka dengan read lock sampai perintah unlock tables; dijalankan
flush tables with read lock;
3) Kemudian lihat informasi status tentang binary log files pada master, yang dimana informasi ini akan digunakan dan dicocokan pada server slave nanti
show master status;
4) Keluar dari shell mysql
quit
5) Lakukan perintah mysqldump, Mysqldump ini adalah bagian dari paket database relasional mysql yang memungkinkan Anda untuk "dump" database, atau kumpulan database, untuk backup atau transfer ke server SQL lain.
- --all-databases digunakan untuk Dump semua tabel di semua database
- --lock-all-tables digunakan untuk Mengunci semua tabel di semua database
- --events digunakan untuk Dump events terhadap database yang di dump
- mysql_dump.sql adalah file yang terbuat dari proses mysqldump.
6) Masuk ke shell mysql
mysql -u root -p
7) Jalankan perintah unlock tables;. Penggunaan unlock tables ini yaitu untuk melepas global (semua) read lock yang diperoleh pada perintah flush tables with read lock;
unlock tables
8) Keluar dari shell mysql
exit
scp mysql_dump.sql "slave host":"file destination"
Konfigurasi Server Slave (Replica)
1) Masukan file mysql_dump.sql yang telah tercopy tadi kedalam sql server slave. Hal ini dilakukan agar file dump pada slave sama dengan yang ada pada master, jadi nanti bisa tersinkronisasi.
mysql -u root -p < "letak file mysql_dump.sql"
2) Masuk ke shell mysql
mysql -u root -p
- 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 binary log files beserta lokasinya pada server master. Ini harus sama dengan status master yang ada pada server master.
4) Jika sudah, sekaranng jalankan mode slavenya
start slave;
5) Sekarang lihat status slave untuk pengecekan apakah antara server master ataupun slave berhasil tersinkronisasi atau tidak
show slave status\GNah, jika berhasil tersinkronisasi, pada Slave_IO_Running dan Slave_SQL_Running statusnya yaitu Yes
Pengujian Pada Client
1) Untuk pengujian, coba buat database pada server master, terserah kalian nama databasenya apa
2) Pastikan database berhasil terbuat
3) Setelah itu, akses server slave, kemudian coba cek apakah database yang dibuat pada server master juga terdapat pada server slave?
Yap, mungkin cukup sekian untuk postingan Konfigurasi MySQL Database Replication kali ini
Terima kasih
Sekian dan semoga bermanfaat...
Comments
Post a Comment