Setup Slave Replikasi MySQL Database dengan Percona XtraBackup


logo mysqlMenyiapkan slave untuk replikasi MySQL database dengan Percona XtraBackup sangat mudah dan simple. Dengan menggunkan tool dari Percona ini database master tidak perlu dilock ataupun dimatikan. Yang perlu disiapkan adalah :

  1. Server MySQL Database yang akan dijadikan master dengan IP Address misalnya : 192.168.1.1 dan konfigurasi
    • MySQL bisa berkomunikasi dengan server lain dengan port standar TCP/IP
    • Percona xtrabackup telah diinstall -> langkahnya
    • User dengan privileges replication slave sudah tersedia
      mysql> CREATE USER 'repl'@'192.168.1.2' IDENTIFIED BY 'slavepass';
      mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.2';
    • Binlog dan server-id telah disetup di file my.cnf atau my.ini
      [sugeng@192.168.1.1 ~]$ vi /etc/my.cnf
      log-bin = /var/lib/mysql/mysql-bin
      server-id = 1
  2. Server MySQL Database yang akan dijadikan slave dengan IP Address misalnya : 192.168.1.2 dan konfigurasi
    • MySQL bisa berkomunikasi dengan server lain dengan port standar TCP/IP
    • server-id telah disetup di file my.cnf atau my.ini
      [sugeng@192.168.1.2 ~]$ vi /etc/my.cnf
      server-id = 2

 

Kemudian langkah-langkahnya adalah

Langkah I : Menyiapkan Backup di server master

[sugeng@192.168.1.1 ~]$  innobackupex --user=yourDBuser --password=MaGiCdB1 /var/lib/mysql.backup/
Setelah selesai akan muncul pesan
innobackupex: completed OK!

Maka akan terbuat sebuah file backup di /var/lib/mysql.backup/$TIMESTAMP. Agar file backup konsisten maka perlu mempersiapkan data:

[sugeng@192.168.1.1 ~]$  innobackupex --user=yourDBuser --password=MaGiCdB1 --apply-log /var/lib/mysql.backup/$TIMESTAMP

Langkah II : Mencopykan file backup ke server slave

[sugeng@192.168.1.1 ~]$  innobackupex --user=yourDBuser --password=MaGiCdB1 --apply-log /var/lib/mysql.backup/$TIMESTAMP

Kopikan file backup dari server master ke datadir mysql slave

[sugeng@192.168.1.1 ~]$ scp -r /var/lib/mysql.backup/$TIMESTAMP sugeng@192.168.1.2:/var/lib/mysql/

Langkah III : Start Slave
lihat posisi binlog, untuk dijadikan acuan MASTER_LOG_FILE dan MASTER_LOG_POS slave ketika start

[sugeng@192.168.1.1 ~]$ cat /var/lib/mysql/xtrabackup_binlog_info

konfigurasi slave

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_USER='repl', MASTER_PASSWORD='slavepass', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=245;

Start slave

mysql> START SLAVE;

Cek slave

mysql> SHOW SLAVE STATUS;

Leave a Reply

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