Minggu, 06 Mei 2012

MYSQL DATABASE REPPLICATION


Membuat mysql database replication/mirroring di UbuntuKebutuhan akan adanya High Availability (HA) tidak hanya pada webserver.Bisa juga HA dibuat untuk sistem database. HA pada database dibuat dengan sistem replikasi.Artinya akan ada sebuah sistem dengan minimal 2 database server yang akan berfungsi masing-masing sebagai master dan slave.Semua transaksi data diproses dan disimpan di database master.Secara bersamaan sistem akan otomatis mereplikasi semua data dari master ke slave (sinkronisasi secara otomatis).Jika sebelumnya HA pada webserver kita sudah berjalan (lihat artikel sebelumnya) , kita sudah memiliki infrastuktur HA yang komplit untuk menjalan aplikasi database kita yang dapat mencegah Single Point Of Failure (SPOF)  pada layer aplikasi.

Untuk memulai database replication :
1.Pastikan kedua database server mysql sudah berjalan dengan baik
2.Pastikan kedua database server dapat berkomunikasi ip dari master adalah 192.168.0.156/24  sedangkan ip dari slave adalah 192.168.0.158
3.Sistem pada artikel ini berjalan dengan OS Ubuntu 8 dengan apache2, php 5 dan mysql server 5.
4.Install packet rsync pada kedua database (master dan slave) dengan perintah dibawah ini:
apt-get install rsync
5.Pada database master
 
·       Buat database sederhana dengan user root, dan buat juga tabelnya.(database apasaja).kemudian isikan beberapa data pada tabel tersebut.Pada rtikel ini database nya adalah sample dan
tabelnya adalah siswa
·       edit file –> /etc/mysql/my.cnf dengan isi seperti ini
log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db=sample
server-id=1Login ke mysql dengan perintah:
mysql -u root -p #isikan password root nya
·       Buat user dengan nama slave_user dengan password admin123 dan berikan grant all_priviledges pada user slave_user
·       Berikan perintah dibawah ini pada shell mysql (ekseskusi satu persatu baris ya)
FLUSH PRIVILEGES;
USE sample;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
#Outputnya adalah (output ini harus ada):
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000004 | 98 | sample | |
+——————+———-+————–+——————+
1 row in set (0.00 sec)
UNLOCK TABLES;
Dengan menggunakan tools phpmyadmin, export database sample (nantinya hasil eksport ini akan digunakan di database slave)
6.Pada database slave
Dengan menggunakan tools phpmyadmin, import database sample yang tadi sudah dieksport
7.Edit /etc/mysql/my.cnf :
server-id=2
master-host=192.168.0.156
master-user=slave_user
master-password=admin123
master-connect-retry=60
replicate-do-db=sample
8.Masuk ke mysql slave dengan perintah:
mysql -u root -p # isikan password root nya
9.Ketik perintah ini di shell mysql:
SLAVE STOP;
CHANGE MASTER TO MASTER_HOST=’192.168.0.156′, MASTER_USER=’slave_user’, MASTER_PASSWORD=’admin123′, MASTER_LOG_FILE=’mysql-bin.000004′, MASTER_LOG_POS=183;
11.Selesai.Test dengan cara masukkan data baru atau edit data lama pada master.Dan lihat hasilnya pada slave.Secara otomatis slave tersinkronisasi datanya dari master (kedua data sama)
http://dev.mysql.com/doc/refman/5.0/en/membuat-mysql-database-replication.html

Tidak ada komentar:

Posting Komentar