MySQL Master-Master

Beberapa record pada blog ini kebanyakan adalah beberapa hasil praktik yang dulu pernah saya lakukan. Lima tahun yang lalu,..*eh ada juga deh baru yg 3 tahun lalu,..iya.. baru 🙂 .

Contohnya 2 post sebelum ini merupakan praktik saya yg baru sempat saya tulis dengan tujuan mengingat kembali. Honeypot kira-kira 7 tahun yang lalu, dan Hadoop sekitar 3 tahun yang lalu.

Sekarang saya hanya ingin menulis sekilas tentang replikasi pada MySQL , ketika konsep master-slave dirasa ‘tanggung’, lebih baik kita berikan peran server-server sebagai master sekaligus (master-master).

Tanpa topologi, mudah-nya begini saja saya tuliskan:
1). Sistem operasi yang saya gunakan ISO-CentOS-6.2-x86_64-minimal
2). Dua buah node yang akan berperan sebagai master data.
3). Konfigurasi 2 node repository tersebut untuk mengunduh packages seperti mysql-server telnet wget
4). Konfigurasi 2 node tsb agar dapat saling berinteraksi mengakses masing-masing port MySQL dan SSH.
5). Konfigurasi berkas my.cnf di node 1 agar memiliki ID dan binary logging yang unik seperti berikut:
mycnf-16). Konfigurasi berkas my.cnf di node 2 agar memiliki ID dan binary logging yang unik seperti berikut:
mycnf-27). Silahkan create  database keperluan project anda cukup di node 1, kemudian lakukan dump dan copy-kan ke node 2. Untuk saran, agar tidak mengganggu keluar masuk transaksi saat proses perubahan dan konfigurasi, maka lock menjadi aktifitas penting : FLUSH TABLES WITH READ LOCK;
Jika sudah selesai, kita bisa mengembalikannya : UNLOCK TABLES;
8). Berikan privileges agar setiap node dapat mengakses satu sama lain dengan parameter berikut:
node 1 (IP 192.168.1.3):
GRANT REPLICATION SLAVE ON *.* TO ‘replication’@’192.168.1.5’ IDENTIFIED BY ‘replication_password’;
node 2 (IP 192.168.1.5):
GRANT REPLICATION SLAVE ON *.* TO ‘replication’@’192.168.1.3’ IDENTIFIED BY ‘replication_password’;
9). Jadikan node 2 berperan sebagai SLAVE untuk node 1 dan sebaliknya. Lewat parameter berikut.

node 1:
CHANGE MASTER TO master_host=’192.168.1.3′, master_port=3306, master_user=’replication’, master_password=’replication_password’, master_log_file=’mysql-bin.xxxxxx’, master_log_pos=xxx;
node 2:
CHANGE MASTER TO master_host=’192.168.1.5′, master_port=3306, master_user=’replication’, master_password=’replication_password’, master_log_file=’mysql-bin.xxxxxx’, master_log_pos=xxx;
Untuk bin log file dan log posisition sebelumnya bisa kita lihat melalui parameter : SHOW MASTER STATUS di setiap node.

Node 1 :
status1
Node 2
:
status2

10). Lakukan START SLAVE di setiap node;
11). Lakukan ujicoba dengan melakukan inserting data pada node 1, maka node 2 akan automatically update. Dan sebaliknya.
Node 1:
node1
Node 2 :node2

Untuk variasi penggunaan DB MySQL (baca : maisikwel) ini juga dapat kita ‘instance’ menjadi banyak data direktori, pid, port, bind ip address berdasarkan ‘socket’ dalam satu server saja, menarik bukan 😉 . Silahkan download berkas contoh saya berikut : MySQL_instances

Yang terakhir, jika salah satu master down dan ‘ketinggalan’ dalam hal sinkronisasi data. Lakukan: mysql> load data from master;

Anywhere..anytime..wherever u want to synchronized it

Selamat belajar.

Advertisements

Tinggalkan pesan atau komentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s