Friday 26 May 2017

Lab 9.9 MySQL Database Replication



Pada Postingan ini berisi tentang replikasi database dengan mysql. Replikasi Database merupakan cara yang digunakan untuk menggandakan perubahan data yang terjadi pada Database Server (dalam hal ini MySQL) untuk menghindari atau meminimalisir kehilangan data akibat kerusakan fisik. Sebelumnya jika belum menginstall mysql maka bisa lihat disini INSTALL MYSQL

Cara kerja master slave ini, antara server master dengan slave akan melakukan transfer database sehingga kedua server memiliki isi yang sama persis. Pada server database Mysql kita dapat melakukan konfigurasi replication.



Server Master
1. Edit file konfigurasi mysql, dibawah script [mysqld] tambahkan script

  • log-bin=mysql-bin  (merupakan catatan tentang loggin 
  • server-id=1  (Memberikan id server, tidak bisa menggunakan kata hanya angka saja, angkanya bisa berapapun)

nano /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf

2. Restart mysql agar konfigurasi yang diubah dapat berjalan.
systemctl restart rh-mysql57-mysqld
3. Tambahkan layanan mysql ke firewall agar tidak di blok
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload 
4. Akses mysql dan buat user untuk mode replikasinya
mysql -u root -p 
grant replication slave on *.* to namauser@'%' identified by 'password';

5. Akses mysql, ini yang cukup penting yaitu matikan mode slave karena kalo tidak akan ada masalah di kedepanya dan Perintahkan server untuk membaca ulang tabel  hak akses.
stop slave;
flush privileges; 
 exit

Server Slave
1. Edit file konfigurasi mysql. dibawah script [mysqld] tambahkan script

  • log-bin=mysql-bin  (merupakan catatan tentang loggin) 
  • server-id=1  (Memberikan id server, tidak bisa menggunakan kata hanya angka saja, angkanya bisa berapapun)
  • read_only=1 (berarti server slave hanya bisa melihat, tidak bisa mengubah database kecuali login dengan user yang diberikan hak write)
  • report-host=node1.rahadd.id (merupakan host dari server slave itu sendiri, bisa diatur menjadi nama domain, hostname, maupun ip address server slave)
nano /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf


3. Restart layanan mysql, agar konfigurasi yang diubah dapat berjalan baik.
systemctl restart rh-myql57-mysqld
4.   Tambahkan layanan mysql ke firewall agar tidak di blok
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload 
Server Master
1. Masuk ke mysql
mysql -u root -p
2.   blok semua tabel yang terbuka
flush tables with read lock;
show master status; 

3. Buat dump data dan setelah itu masuk ke mysql
mysqldump -u root -p --all-databases --lock-all-tables --events > mysql_dump.sql
mysql -u root -p 

4. Jalankan perintah unlock tables;. Penggunaan unlock tables ini yaitu untuk melepas global (semua) read lock yang diperoleh pada perintah flush.
unlock tables;
exit 

5. Kirim dump data ke server slave via scp (secure copy).
scp mysql_dump.sql (host server slave:/tmp/)

Server Slave
1. Masuk ke mysql, dan atur informasi server master. dan start mode slaveya

  • 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 tersebutmaster_log_file 
  • master_log_pos merupakan status binary log files beserta lokasinya pada server master. Ini harus sama dengan status master yang ada pada server master.
mysql -u root -p
start slave; 


2. Lihat status replication
show slave status\G




Sekian dan Terimakasih

Related Posts

Lab 9.9 MySQL Database Replication
4/ 5
Oleh