Saturday, April 15, 2017

Konfigurasi Dua MysQl Server untuk Replikasi Master-Slave di Debian 8



Pengertian
Replikasi Database adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objekdatabase dari suatu database ke database lain yang lokasinya terpisah secara fisik.Dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringn lokal maupin internet.

Latar Belakang
Aplikasi besar yang terpasang di Server bisanya memakan banyak RAM dan Storage atau Media Penyimpanan sehingga si server tersebut bisa mengalami gangguan atau down

Maksud dan Tujuan
Mengantisipasi atau meminimalisir kemungkinan gangguan atau down pada server

Alat dan Bahan

  • 2 PC Server

Jangka Waktu Pelaksanaan
Sekitar 30 menit

Tahap Pelaksanaan
Konfigurasi di Master :
Pertama Pastikan 2 buah server sudah saling terhubung dan dapat berkomunikasi
Install  terlebih dahulu mysQl server
# apt-get install mysql-server
Kita konfigurasi di  "/etc/mysql/my.cnf" , Untuk bind_address kita berikan tanda comment atau tanda "#" agar nantinya slave dapat berkomunikasi dengan master.
Dan pada section [mysqld] kita tambahkan seperti di bawah ini
 # nano /etc/mysql/my.cnf
log-bin      # Mengaktifkan Binry Logging
server-id   # Memberikan ID Server

Setelah itu restart mysql agaar konfigurasi tadi dapat tersimpan
/etc/init.d/networking restart 
Kemudian kita cek apakah Binary Logging sudah aktif atau belum
# mysqld --verbose --help | grep log-bin

Dan cek juga Server ID, apakah sesuai dengan yang kita masukan tadi
# mysqld --verbose --help | grep server-id
Selanjutnya kita buat database dan akun khusus replikasi
# mysql -u root -p


Dan kita buat akun untuk menangani proses replikasi
> GRANT SUPER, RELOAD, REPLICATION SLAVE ON*.*TO 'username slave'@'%' IDENTIFIED BY 'password slave';

 Untuk menyinkronkan database Master dan Slave kita harus membekukan database sementara
> flush tables with read lock;

Selanjutnya kita cek status posisi database master yang didalamnya terdapat file dan position yang natinya dibutuhkan saak konfigurasi MysQl Slave
> show master status;

Kemudian kita buat snapshot untuk database yang telah kita buat tadi
# tar cjvf snapshotmaster.tar.bz2 /var/lib/mysql/<nama database tadi>
Setelah itu kirimkan asrsip snapshot tadi ke Mysql Slave 
# scp snapshotmaster.tar.bz2 <nama user slave>@<IP Address Slave>:/home/<nama user slave>

Konfigurasi Slave :
Install MysQl terlebih dahulu
# apt-get install mysql-server
Kita konfigurasi di "/etc/mysql/my.cnf" dan berikan tanda comment atau "#" dan tambahkan konfigurasi server-id dan harus berbeda dengan MysQl Master didalam section [mysqld]
# nano /etc/mysql/my.cnf

Sekarang kita cek Server ID apakah sesuai dengan konfigurasi tadi atau belum
# mysqld --verbose --help | grep server-id

Dan kita simpan konfigurasi diatas
# /etc/init.d/mysql restart
Kemudian kita stop slave
> STOP SLAVE;
Selanjutnya kita arahkan MysQl Slave ke MysQl Master dengan cara memasukan info master
> CHANGE MASTER TO MASTER_HOST='IP Address Master', MASTER_USER='username master', MASTER_PASSWORD='password master', MASTER_LOG_FILE='mysqld-bin.xxxxxxx', MASTER_LOG_POS=<posisi log master>;
Dan hidupkan kembali Slave mode
> START SLAVE;
Selanjutnya kita cek apakah slave sudah terkoneksi ke Master
> SHOW MASTER STATUS \G;

Konfigurasi Master:
Dan kita unfreeze database master
> UNLOCK TABLES;

Sekarang coba kita buat database di Master maka di Slave harusnya ada data seperti yang anda buat
> CREATE DATABASE COBA;

> SHOW DATABASES;

Nah konfigurasi replikasi database sudah benar sekarang anda bisa menggunakan sesuai kebutuhan anda

Kesimpulan
Dengan menggunakan cara replikasi ini kita bisa meminimalisir terjadinya kerusakan pada server sehingga kita tidak perlu takut kehilangan data

Referensi
http://dinus.ac.id/repository/docs/ajar/c-12_Reff_Replikasi_BD.pdf
https://penguinstunnel.blogspot.co.id/2017/03/langkah-mengkonfigurasi-2-mariadb.html
Load disqus comments

0 comments