Cara Instal / Set Up MySQL Database Replication ( Replikasi Database MySQL ) di Fedora 10 / Centos 5.2
Tutorial ini menunjukkan cara membuat replikasi database di MySQL. Replikasi Mysql memperbolehkan untuk memiliki replikasi database yang sama persis di sisi server slave dengan database yang ada di server master . Semua update terhadap databse yang ada di server master segera dilakukan proses replikasi ke databse MySQL yang ada di server slave sehingga kedua database dapat disinkronisasi.
Digunakan pada Fedora 10. Melihat distro linux yang digunakan seharusnya dapat berjalan pada Red Hat Enterprise Linux ataupun pada Linux Centos 5.1 dan Centos 5.2/ .
Beberapa trik yang harus diketahui adalah bahwa cara ini mungkin dapat bekerja sepanjang anda memiliki pengetahuan tentang administrasi linux itu sendiri dan pengetahuan tentang trouble shooting di linux server .
Linux cluster sebenarnya cocok diimplementasikan untuk posisi database yang akan sama persis di beberapa server yang ada . Bisa diimplementasikan load balance atau fail-over dengan pertimbangan bahwa data pada satu server master dengan server cluster memiliki data yang sama .
1 Preliminary Note
Digunakan 2 Fedora 10 server pada tutorial ini:
- server1.example.com (IP 192.168.0.100): master
- server2.example.com (IP 192.168.0.101): slave
Pada tutorial ini akan ditunjukan cara mereplikasi database exampledb dari server1.example.com (master) ke server2.example.com ( slave).
Diasumsikan bahwa MySQL sudaha terinstall dan bekerja dengan baik pada kedua server . Database exampledb dengan table dan data sudah ada di mater server tapi tidak ada di sisi server slave .
2 . Konfigurasi di sisi Master
server1:
Pertama kali buat log direktori untuk MySQL bin-logs:
mkdir /var/log/mysql
chown mysql:mysql /var/log/mysql
Edit file /etc/my.cnf . Kita harus memberitahu MySQL database mana yang seharusnya menulig log ( log ini akan digunakan oleh server slave untuk melihat apa yang berubah pada sisi server master ) , Dimana log file yang akan digunakan dan harus disebutkan dengan jelas bahwa MySQL server master difungsikan sebagai master . Akan dilakukan replikasi database exampledb, jadi akan dilakukan dengan menambahkan beberapa baris perintah di /etc/my.cnf ( di MySQLd section ) :
vi /etc/my.cnf
[mysqld]
[…]
log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db=exampledb
server-id=1
[…]
—————————————————————————————
nrspot.com staying alive by support from www.metrochip8.com , please click Link atau Gambar untuk support terhadap nrspot.com :
Toko Komputer Online dengan Kualitas Bagus dan Harga Terjangkau.
menyediakan Hardware : Komputer, Printer, Notebook, Network & Aksesories.
Software : Operating System dan Pengembangan Aplikasi .
— nrspot.com — metrochip8.com 2009 —–
Restart mysql :
service mysql restart
Masuk ke database MySQL dan create user baru untuk privilege dalam melakukan proses replikasi database :
mysql -u root –p
masukkan passwordnya >
Posisi di dalam mysql prompt shell , lakukan langkah berikut :
STOP SLAVE;
GRANT REPLICATION SLAVE ON *.* TO ’slave_user’@'%’ IDENTIFIED BY ’slave_password’;
FLUSH PRIVILEGES;
Berikutnya, masih didalam mysql lakukan langkah berikut :
USE exampledb;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
Perintah barusan akan menampilkan hasil seperti berikut, Catat / kopi dan paste ke notepad karma nanti data tersebut akan diperlukan :
mysql> SHOW MASTER STATUS;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 | 98 | exampledb | |
+——————+———-+————–+——————+
1 row in set (0.00 sec)
mysql>
Jangan keluar dari MySQL Shell, karena kalau keluar dari mysql maka database lock akan diremove dan ini hal yang tidak diperlukan pada saat ini karena harus dicreate untuk database dump . Selagi MySQL shell masih dijalankan. Buka terminal shell untuk command line yangbaru dimana akan dicreate SQL dump dengan nama snapshot.sql dan transfer ke server2 ( menggunakan scp ) .
cd /tmp
mysqldump -u root -pyourrootsqlpassword –opt exampledb > snapshot.sql
scp snapshot.sql root@192.168.0.101:/tmp
Setelah itu, keluar dari terminal dan kembali ke sesi terminal MySQL , untuk melakukan unlock mysql dan keluar dari mysql .
UNLOCK TABLES;
quit;
3 Konfigurasi untuk Slave
server2:
Harus dilakukan pada sisi server slave dimana MySQL pada server slave berfungsi sebagai slave, dimana master nya adalah 192.168.0.100 dan master database yang disinkronisasikan dan diperhatikan adalah exampledb. Akan dilakukan penambahan perintah konfigurasi di line [mysqld] section pada dile /etc/my.cnf :
vi /etc/my.cnf
[mysqld]
[...]
server-id=2
master-host=192.168.0.100
master-user=slave_user
master-password=slave_password
master-connect-retry=60
replicate-do-db=exampledb
[...]
restart MySQL:
/etc/init.d/mysqld restart
Akan dicreate database kosong / empty dengan nama exampledb pada server slave ( pastikan sudah dijalankan STOP SLAVE ; untuk men stop semua process slave kalau memang ada )
mysql -u root –p
masukkan password dan jalankah perintah :
STOP SLAVE;
CREATE DATABASE exampledb;
quit;
Anda keluar dari mysql dan lakukan import SQL dump snapshot.sql sebagai berikut :
cd /tmp
mysql -u root -pyourrootsqlpassword exampledb < snapshot.sql
Masuk lagi ke MySQL :
mysql -u root –p
masukkan password .
.. dan jalankan command berikut untuk membuat server2 sebagai slave dari server1 ( ini penting bahwa nilai / value dari master host sebagai server1 .
CHANGE MASTER TO MASTER_HOST=’192.168.0.100′, MASTER_USER=’slave_user’, MASTER_PASSWORD=’slave_password’, MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=98;
( perintah diatas bersambung )
Akhirnya start Slave :
START SLAVE;
Kemudia check slave status:
SHOW SLAVE STATUS\G
Penting bahwa kedua Slave_IO_Running dan Slave_SQL_Running memiliki nilai Yes pada outputnya ( kalautidak terjadi kesalahana, dan harus mencek ulang setup yang sudah dilakukan atau melihat error message di /var/log/mysqld.log untuk melihat kemungkinan errornya ) .
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.100
Master_User: slave_user
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 98
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 235
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: exampledb
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 235
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)
mysql>
Keluar dari MySQL Shell pada server2 :
quit;
.
Selesai . Dimana exampledb pada sisi server master dilakukan update maka semua perubahan akan direplikasi di exampledb pada master slave .
Author: Falko Timme <ft [at] falkotimme [dot] com>
Last edited 01/23/2009
————————————————————————————————————————————————-
nrspot.com staying alive by support from www.metrochip8.com , please click Link atau Gambar untuk support terhadap nrspot.com :
Toko Komputer Online dengan Kualitas Bagus dan Harga Terjangkau.
menyediakan Hardware : Komputer, Printer, Notebook, Network & Aksesories.
Software : Operating System dan Pengembangan Aplikasi .
— nrspot.com — metrochip8.com 2009 —–
—-


[…] Cara set up mysql database repliation / replika di fedora 10 / Centos 5.2 . […]