Replikasi Database MySQL antara 2 Mesin Berbasis Linux Ubuntu

Berikut langkah-lankah untuk melakukan replikasi antara 2 mesin server database berbasis Ubuntu;

I. Pertama-tama siapkan semua kebutuhan yaitu 2 mesin berbasis Ubuntu yang telah diinstal MySQL (kalau bisa versi terbaru, walaupun replikasi sebenarnya sudah tersedia sejak MySQL versi 3.23.15). Nah mesin pertama (misal IP: 192.168.1.100) yang akan kita gunakan sebagai Master dan yang kedua (misal IP: 192.168.1.101) sebagai Slave, pastikan terkoneksi dalam jaringan dan tidak ada masalah dengan port yang digunakan MySQL (defaultnya 3306).

II. Selanjutnya kita mulai dengan mengkonfigurasi mesin Master. Adapun yang harus dilakukan adalah;

a. Membolehkan (enable) networking untuk MySQL, sehingga MySQL di mesin ini bisa diakses dari jaringan/berbagai IP Address. Caranya dengan memastikan pada my.cnf (biasanya di /etc/mysql/my.cnf) 2 baris, ’skip-networking’ dan ‘bind-address=127.0.0.1″ tidak aktif dengan menambahkan karakter komentar (#) di awal barisnya, sehingga menjadi;

# skip-networking
# bind-address  = 127.0.0.1

b. Selanjutnya setup lokasi file log-bin, nama database (di tutorial ini kita akan menggunakan database employee) dan id-server;

log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db=employee
server-id=1

c. Agar konfigurasi baru bisa langsung berfungsi, silahkan restart MySQL dengan perintah sudo /etc/init.d/mysql restart

d. Setelah itu masuk ke dalam mysql dengan perintah di terminal mysql -u root -p, di terminal ketika connect ke MySQL maka prompt-nya akan berubah dari $ (atau #) menjadi mysql> . Nah disini kita akan membuat user baru database MySQL yang akan diberi hak untuk melakukan replikasi;

mysql> GRANT REPLICATION SLAVE ON *.* TO ’slave_user’@’%’ IDENTIFIED BY ‘password_slave_user’;
mysql> FLUSH PRIVILEGES;

ket= username ’slave_user’ dan password ‘password_slave_user’ silahkan diganti sesuai keinginan

e. Setelah itu kita ambil informasi binary log dari database yang kita ingin replikasi,

mysql> USE employee;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;

Maka akan muncul keluaran yang mirip seperti ini;

+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000003 |       98 | employee     |                  |
+——————+———-+————–+——————+
1 row in set (0.00 sec)

Simpan informasi ini untuk digunakan pada konfigurasi di mesin Slave.  Setelah itu jangan lupa unlock dulu semua table tadi, dan keluar dengan perintah;

mysql> UNLOCK TABLES;
mysql> FLUSH PRIVILEGES;
mysql> exit;

f. Selanjutnya backup database employee yang akan kita replikasi, untuk nantinya kita restore di Slave agar kondisi database di kedua mesin adalah sama. Ini bisa dilakukan di terminal dengan perintah;

$ sudo mysqldump -u root -p<password> –opt employee > employee.sql

III. Langkah selanjutnya adalah mengatur konfigurasi mesin Slave-nya, adapun yang harus dilakukan adalah;

a. Dari terminal kita masuk ke MySQL, setelah itu kita buat database baru bernama employee sama seperti di Master, dan langsung keluar;

mysql> CREATE DATABASE employee;
mysql> exit;

b. Di terminal restore backup database employee dari Master dengan perintah

$ sudo mysql -u root -p<password> employee < /lokasi/folder/employee.sql

c. Selanjutnya konfigurasi file my.cnf di mesin Slave, sesuai dengan konfigurasi jaringan dan Master sebelumnya;

server-id=2
master-host=192.168.1.100
master-user=slave_user
master-password=password_slave_user
master-connect-retry=60
replicate-do-db=employee

Ket: nilai server-id, dapat diganti dengan angkat integer positif selain 1 yang sudah dipakai oleh Master

d. Restart MySQL agar konfigurasi baru bisa berjalan.

e. Kemudian masuk lagi ke mysql di terminal dan jalankan, perintah berikut ini;

mysql> SLAVE STOP;
mysql> CHANGE MASTER TO MASTER_HOST=’192.168.1.100′, MASTER_USER=’slave_user’, MASTER_PASSWORD=’password_slave_user‘, MASTER_LOG_FILE=’mysql-bin.000003‘, MASTER_LOG_POS=98;
mysql> START SLAVE;
mysql> FLUSH PRIVILEGES;
mysql> exit;

IV. Silahkan ditest, harusnya kalau tidak ada langkah yang salah (bisa jadi Anda yang salah mengikuti tutorial ini, atau tutorial Bair memang ada yang salahnya :D ) maka jika di Master terjadi perubahan, maka Slave akan ikut-ikutan.

———–

Tutorial diatas adalah materi pengantar pertemuan komunitas Ubuntu Palembang/SumSel, bulan Juli, dan diambil dari subair.wordpress.com.

  • Share/Save/Bookmark

Post a Response