Replikasi Database / Database Replication

Penjelasan singkat mengenai Apa Itu Replikasi Database/ Database Replication. Replication Database merupakan seperangkat teknologi yang digunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lain. Dan selanjutnya, mensinkronisasikan antar database untuk menjaga konsistensi. Dengan replikasi, data dapat didistribusikan ke lokasi yang berbeda dan pengguna yang jauh melalui LAN, WAN, Dial-up Connection, wireless connections, dan internet.

Kegunaan dari Teknologi Replikasi Database ini adalah untuk menyimpan database server yang secara otomatis akan terbackup di komputer slave. Kali ini saya akan mencoba memberikan Tutorial Cara membuat Replikasi Database. 

Syarat untuk dapat melakukan proses replikasi :
  • Menyediakan minimal 2 komputer server, yang pertama untuk database server master dan komputer yang kedua untuk database server slave
  • Versi database yang sama, misal jika server master menggunakan MySQL 5.5 maka server slave juga menggunakan MySQL 5.5, jika server master menggunakan MariaDB 5.6 maka server slave juga menggunakan MariaDB 5.6



Dalam artikel ini, kami menggunakan MariaDB versi 5.5.


Konfigurasi Komputer Server Master


  • Install MariaDB/MySQL 5.5 ke folder tertentu, misalnya folder C:\Program Files\MariaDB 5.5
  • Pastikan antara komputer master dengan komputer slave telah terhubung jaringan. Lalu lihat IPnya, misalnya IP komputer master: 192.168.1.1 dan IP komputer slave: 192.168.1.2
  • Buatlah database di Acosys, dalam tutorial ini nama databasenya ‘coba’, selanjutnya database ini dibackup dan nantinya akan direstore ke komputer slave.
  • Buat user MysQL baru yang mempunyai otoritas untuk melakukan replikasi. Pembuatan user ini dapat menggunakan HeidiSQL, MySQL Administrator atau menggunakan sintaks SQL. Pada tutorial ini kami menggunakan HeidiSQL yaitu aplikasi berbasis Windows untuk mengelola database MySQL dan MariaDB. Aplikasi ini sudah tersedia saat install MariaDB. Cara membuat usernya sebagai berikut :
    • Buka aplikasi  HeidiSQL, dari Start → All Program → MariaDB 5.5 → HeidiSQL.
    • Dari Menu Tools → User Manager




      • Klik [Add] untuk menambah user.
      • [User name] diisi dengan nama user replika, sebagai contoh: user1
      • [From Host] dipilih Acces from everywhere
      • [Password] diisi dengan password yang akan digunakan, sebagai contoh: 1234
      • [Repeat Password] diisi sama dari password.
      • [Allow access to:] cekbox [Global privileges] harus aktif.
      • Klik tombol [Save] untuk menyimpan user.




  •  Lakukan konfigurasi pada komputer Master terlebih dahulu.
    • Ketik dan jalankan (Execute SQL (F9)) satu persatu dua sintak di query sebagai berikut:
      • GRANT REPLICATION SLAVE ON *.* TO  'user1'@'192.168.1.2' IDENTIFIED BY ‘1234’;
      • FLUSH PRIVILEGES;





  • Edit my.ini/my.cnf dengan menambahkan konfigurasi sebagai berikut:

server-id = 1
log-bin = mysqlbinlog
binlog_format=mixed


Keterangan : server-id diisi dengan angka yang harus berbeda untuk setiap server, misal jika server master menggunakan 1, maka server slave dapat menggunakan mulai dari 2, 3, dan seterusnya.



Setelah disimpan file konfigurasi my.ini/my.cnf itu, lalu restart service MySQL/MariaDBnya.
  • Ketik dan jalankan (Execute SQL (F9)) satu persatu dua sintak di query sebagai berikut:
    • RESET MASTER;
    • SHOW MASTER STATUS;
dari sintak ini harus tampil sebagai gambar berikut ini:



Catat nama file lognya, misal di contoh ini adalah mysqlbinlog.000001. File log ini akan digunakan di setting komputer server slave.


Konfigurasi Pada Komputer Server Slave




  • Setelah install MySQL atau MariaDB dengan versi yang sama dengan komputer server master, lakukan restore database yang sudah dibackup dari server master. Restore dapat dilakukan dari Acosys maupun dari HeidiSQL/MySQL Administrator.
  • Edit my.ini/my.cnf dengan menambahkan server-id, nilai dari server-id ini harus berbeda dengan server master, misal server-id master menggunakan 1, maka di slave dapat menggunakan 2. Jika ada lebih dari server slave dapat menggunakan id mulai dari 2,3 dan seterusnya. Untuk server slave pertama, tambahkan kode berikut di my.ini.



server-id = 2



  • Simpan file my.ini lalu restart service MySQL/MariaDB.
  • Ketik dan jalankan (Execute SQL (F9)) satu persatu empat sintak berfungsi untuk aktivasi ke komputer master di query sebagai berikut:




SLAVE STOP;
CHANGE MASTER TO MASTER_HOST='192.168.1.1'
MASTER_USER='user1'
MASTER_PASSWORD='1234'
MASTER_LOG_FILE='mysqlbinlog.000001'
MASTER_LOG_POS=0;
START SLAVE;
SHOW SLAVE STATUS:




Jika kolom Slave_IO_State berisi Waiting for master to send event, berarti setting server slave berhasil.


Untuk mencoba apakah replikasi ini berhasil atau tidak, login dari komputer client dengan memasukkan IP server master (192.168.1.1). Lakukan perubahan data dengan Acosys  pada database ‘coba’ dengan merubah data-data atau membuat faktur baru.


Log out Acosys dari komputer client tadi lalu isikan IP server slave (192.168.1.2), lalu lihat perubahan yang dibuat tadi. Jika replikasi benar maka server slave ini databasenya sudah berubah dan sama persis dengan isi database server master.



Tool Untuk Komputer Master


Untuk memudahkan penggunaan oleh user, Anda dapat membuat batch file di komputer server, contohnya seperti ini :
  • Buat file menggunakan text editor (notepad, dan lain-lain) yang isinya seperti ini



@echo off
echo "RESET MASTER"
set mysqlbin="C:\Program Files\MariaDB 5.5\bin"
set masteruser=user1
set masterpassword=1234
%mysqlbin%\mysql.exe --user=%masteruser% --password=%masterpassword% < master.sql
echo "SELESAI"

  • Ganti mysqlbin jika folder instalasi MySQL berbeda dengan contoh
  • Ganti masteruser dan masterpassword dengan user dan password yang Anda buat
  • Simpan dengan nama master.bat
  • Buat file master.sql dari text editor, isinya seperti dibawah ini :

PURGE BINARY LOGS BEFORE NOW();
RESET MASTER;



  • File master.bat ini harus dijalankan setiap kali komputer server master ini baru dihidupkan (restart).



Tool Untuk Komputer Slave


Untuk memudahkan penggunaan oleh user, Anda dapat membuat batch file di komputer slave, contohnya seperti ini :
  • Buat file menggunakan text editor (notepad, dan lain-lain) yang isinya seperti ini :



@echo off
echo "START SLAVE"
set mysqlbin="C:\Program Files\MariaDB 5.5\bin"
set slaveuser=user1
set slavepassword=1234
%mysqlbin%\mysql.exe --user=%slaveuser% --password=%slavepassword% < slave.sql
echo "SELESAI"

  • Ganti mysqlbin jika folder instalasi MySQL berbeda dengan contoh
  • Ganti masteruser dan masterpassword dengan user dan password yang Anda buat
  • Simpan dengan nama slave.bat
  • Buat file slave.sql dari text editor, isinya seperti dibawah ini :



SLAVE STOP;
CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_USER='user1', MASTER_PASSWORD='1234', MASTER_LOG_FILE='mysqlbinlog.000001';
SLAVE START;


  • File slave.bat ini harus dijalankan setiap kali komputer server slave ini baru dihidupkan (restart) tetapi harus setelah komputer server master menjalankan file master.bat

Kunjungi web kami www.acosys.co.id 

© 2013-2014 | Desain Template oleh ★ Newbie Kutang | Modifted Template Newbie Kutang