Friday 26 May 2017

Lab 9.6 Database Replication MariaDB


Postingan kali ini tentang replikasi database. Replikasi Database merupakan cara yang digunakan untuk menggandakan perubahan data yang terjadi pada Database Server (dalam hal ini MariaDB) untuk menghindari atau meminimalisir kehilangan data akibat kerusakan fisik.

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 Mariadb kita dapat melakukan konfigurasi replication.




Server Master
1. Edit file konfigurasi mariadb. pada bagian 'mariadb' tambahkan script 'log-bin=mysql-bin' 'server-id=1'
nano /etc/opt/rh/rh-mariadb101/my.cnf.d/mariadb-server.cnf

2. Restart mariadb
systemctl restart rh-mariadb101-mariadb
3. Masuk ke mariadb
mysql -u root -p
4. matikan mode slave pada server master
stop slave;
5. Buat user untuk mode replikasi. Jalankan perintah flush privileges;. Flush Privileges adalah sinonim untuk reload. Perintah reload menyuruh server untuk membaca ulang tabel hak akses.
grant replication slave on *.* to namauser@'%' identified by 'password';
flush privileges 

7.  Tambahkan layanan mariadb ke dalam firewall agar tidak di blok
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
Server Slave
1. Edit file konfigurasi mariadb. pada bagian 'mariadb' tambahkan script 'log-bin=mysql-bin' 'server-id=1' 'read_only=1' 'report-host=node1.rahadd.id'
nano /etc/opt/rh/rh-mariadb101/my.cnf.d/mariadb-server.cnf

2. restart mariadb
systemctl restart rh-mariadb101-mariadb
3. Tambahkan mariadb ke firewall
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload 
 Server Master
1. masuk ke mariadb
mysql -u root -p
2. flush terhadap semua tabel 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. Dapatkan file dump dengan perintah Mysqldump. Hal ini memastikan bahwa ketika file dump dimuat ulang, ia membuat setiap database jika tidak ada dan menjadikannya basis data default sehingga isi database dimuat ke database yang sama dengan tempat mereka berada.
mysqldump -u root -p --all-databases --lock-all-tables --events > mysql_dump.sql

5. Buka kunnci tabel untuk melepas semua read lock yang diperoleh.
unlock tables;
6. Copy file mysql_dump.sql yang telah terbuat 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.
scp mysql_dump.sql "host server slave":"lokasi directory"


Server Slave
1. Masukan file mysql_dump.sql yang telah tercopy tadi kedalam sql server slave. Lalu masuk ke mysql
mysql -u root -p < "Lokasi file fump.sql"
mysql -u root -p 

2. Mengubah parameter yang digunakan server slave untuk terhubung ke server master, untuk membaca log binary master, dan membaca log relay slave. sebelum di hubungkan pastikan harus di stop slave. jika sudah start slave.
penjelasan

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

3. Untuk melihat status slave.
show slave status\G



Sekian dan terimakasih

Related Posts

Lab 9.6 Database Replication MariaDB
4/ 5
Oleh