Spesifikasi
-
Menggunakan 2 buah server Ubuntu
-
Menggunakan Percona MySQL 5.7.
-
Jangan lupa juga install
percona-xtrabackup-24
Konfigutasi yang Ga Boleh Dilewatkan
-
Pastikan master & slave pakai MySQL varian yang sama (misal Percona sama Percona, ga bisa Percona sama MariaDB)
-
Allow port 3306 di firewall master & slave biar bisa keduanya bisa komunikasi
Sederhana Banget ya Diagramnya
Setup Master Slave
-
Matikan service mysql di instance slave
-
Di instance master modifikasi file /etc/mysql/my.cnf tambahkan baris berikut lalu restart mysql
[mysqld] #nama bin yang bakal di pakai untuk restore log-bin=master-mysql-bin #server id nya 1 aja, biar gampang server-id=1 #mysql 5.7 katanya belum support multiple bind address, jadi kita listen ke 0.0.0.0 bind-address=0.0.0.0
-
Kita buat backup (export data si master) biar nanti bisa di restore di slave, gunakan perintah
xtrabackup --backup --user=root --password=bismillahsiskiun9 --target-dir=/home/ipang/db-backup
Kalau udah bener nanti bakal ada output xtrabackup: completed OK!
-
Biar data nya konsisten lakukan hal ini
xtrabackup --user=root --password=bismillahsiskiun9 --prepare --target-dir=/home/ipang/db-backup
-
Copy data backup tadi ke instance slave, bisa pake
rsync -avpP /home/ipang/db-backup ipang@192.168.100.2:/home/ipang/
-
SSH ke instance slave, kita bakal restore data yang tadi di copy. Biar gampang kalau ada apa-apa, kita backup dulu config mysql dan datanya
mv /var/lib/mysql /var/lib/mysql.original
-
Restore data yang tadi di copy pake
xtrabackup --move-back --target=/home/ipang/db-backup
-
Ganti owner nya mysql config dan data yang kita restore tadi
chown -R mysql:mysql /var/lib/mysql
Kalau ga dijalanin service mysql ga bakal jalan karena owner nya root
-
Ganti lagi ke instance master, kali ini kita config biar user replication nya, masuk ke mysql console
grant replication slave on *.* to 'replication_user'@'192.168.100.2' identified by 'tukangngopistarling';
-
Remote lagi di instance slave untuk memastikan kita bisa remote ke instance master menggunakan user yang tadi kita buat.
mysql -u replication_user -h 192.168.100.2 -p
lalu
show grants
Udah Bisa Akses dan Dapet Replication Permission
-
Lanjut di instance slave, saatnya kita melakukan replika. Sebelumnya masuk ke /etc/mysql/my.conf, tambahin di bawahnya
[mysqld] #server id nya 2 aja, biar gampang server-id=2
Lalu jalanin service mysql nya, harusnya bisa jalan tanpa masalah ;)
-
Cek file isi dari file /var/libxtrabackup_binlog_pos_innodb
cat /var/libxtrabackup_binlog_pos_innodb
Isinya Emang Cuma Gini Ya
-
Masuk ke MySQL console di instance slave, kita config biar replikasinya jalan
CHANGE MASTER TO MASTER_HOST='192.168.100.1', MASTER_USER='replication_user', MASTER_PASSWORD='tukangngopistarlings', MASTER_LOG_FILE='master-mysql-bin.000001', MASTER_LOG_POS=835;
Isi dari MASTER_LOG_FILE & MASTER_PASSWORD sesuaikan isi dari file /var/libxtrabackup_binlog_pos_innodb
-
Finally, jalankan perintah ini lagi di MySQL console
start Slave
lalu cek status slave punya
show slave status \G
Yey Running!
Referensi:
Percona - Setting up replication

Jika kamu merasa tulisan ini bermanfaat & membantu kamu, kamu bisa berdonasi lewat saweria
If you feel this website help you, you can donate at saweria