Dwilicious Journal

Its just some simple writing about myworld, computer and software




Replikasi Sederhana MySQL


Langkah Setup MySQL Replication.

Requirements;
Minumum 2 Working MySQL Server as Master and Slave
Networking (TCP/IP)
Putty (untuk mempermudah konfigurasi)

Asumsi:
Server master dan slave sudah siap dan masing-masih memiliki IP address sbb:
-master IP= 192.168.0.1
-slave IP= 192.168.0.100
Database yang akan direplika adalah database “bpr”.
Kedua server telah memiliki database yang identik. (isi database bpr di server harus dalam keadaan sama dengan database di slave)


Langkah-langkah:

1.Edit /etc/my.cnf pada master
pada section [mysqld] tambahkan server-id.
Aktifkan juga binary logging (log-bin) karena tanpa binary logging MySQL tidak bisa bertindak sebagai master replikasi.
Misal :

[mysqld]
old-password=1
port=3306
log-bin
binlog-do-db=bpr
binlog-ignore-db=mysql
binlog-ignore-db=test
server-id=1

(jgn lupa merestart service mysqld setelah merubah konfigurasi)

2.. Edit /etc/my.cnf pada slave
pada section [mysqld] tambahkan server-id. Misal :

[mysqld]
old-password=1
port=3306
server-id=2
(jgn lupa merestart service mysqld setelah merubah konfigurasi)

3.Persiapkan user replikasi pada Master (dg perintah query misal sbb)

mysql> GRANT REPLICATION SLAVE ON *.*
-> TO 'mirror'@'191.168.0.100' IDENTIFIED BY 'mirror';


4.Periksa status master dengan perintah query (pada Server Master) sbb:

mysql > SHOW MASTER STATUS;

Jika tidak ada masalah, outputnya kurang lebih seperti dibawah:

+---------------+----------+---------------+-------------------+
| File | Position |Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+---------------+-------------------+
| mysql-bin.003 | 73 | bpr | manual, mysql |
+---------------+----------+---------------+-------------------+
Penjelasan Singkat;
File = mysql-bin.003 adalah file binary log yang sedang dipakai MySQL master.
Position = 73 adalah posisi log pada file mysql-bin.003
Binlog_Do_DB = database yang diawasi dan dicatat dalam log. (database ini bisa direplika)
Binlog_Ignore_DB = database yang tidak dicatat dalam log. (database ini tidak dapat direplika)

5.Arahkan slave dengan melakukan Query pada Server Slave

mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.0.1',
-> MASTER_USER='mirror',
-> MASTER_PASSWORD='mirror',
-> MASTER_LOG_FILE='mysql-bin.003',
-> MASTER_LOG_POS=73;
Master_log_file dan Master_log_pos diisi sesuai output query master status di point 4

6.Aktifkan Slave dengan melakukan Query pada Slave Server

mysql> START SLAVE;
Setelah itu ada baiknya melakukan pengecekan status Slave server dengan Query:
mysql> SHOW SLAVE STATUS;

Sampai disini seharusnya jika tidak ada error, maka slave sudah aktif dan bisa dicoba dengan melakukan perubahan pada Server Master.


my oh my, mysql


Hari ini kebetulan aku sedang melakukan servis dan reconfigure server mysql di sebuah bank kecil di Solo. Disini ada dua server, satu sebagai server utama dan satu lagi sebagai server replika. Masalahnya, kedua server tiba-tiba drop. Untuk mengakses database mysql diperlukan waktu yang sangat lama. Berbagai kecurigaan muncul satu per satu, mulai dari switch yang rusak, karena modem speedy dll.

Satu per satu network gear dipreteli, tapi performa mysql tidak juga naik. Saat di cross cek dengan samba pada server yang sama hasilnya ternyata berlawanan. Samba di server bekerja sebagaimana mestinya. Dari situ diambil kesimpulan kalau masalah ada pada server mysql. Googling sebentar,.. coba edit sana edit sini, akhirnya berhasil juga :-)

Masalah teratasi dengan menambahkan --skip-name-resolve pada skrip mysqld (kebetulan paka centos). Katanya kalau ditambah opsi tersebut kita tidak bisa lagi pakai hostname untuk mengakses mysql server, tetapi who cares toh untuk mengaksesnya bisa pakai no IP. Sekarang semua berjalan dengan lancar, hore... :-D
Bisa istirahat makan malam, kemudian lanjutin setup replika yang tiba-tiba ngadat


My Technorati

Dwi Susanto
Dwi Susanto
Create Your Badge

Posting Terakhir

Archives

Links


ATOM 0.3
View My Stats