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.0Kita 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-backupKalau 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-backupCopy 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.originalRestore data yang tadi di copy pake
xtrabackup --move-back --target=/home/ipang/db-backupGanti owner nya mysql config dan data yang kita restore tadi
chown -R mysql:mysql /var/lib/mysqlKalau 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 -plalu
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=2Lalu 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 Slavelalu 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
