Lewati ke konten utama

Replication MySQL

Pengantar

Replication di MySQL adalah proses menyalin data dari satu server database (master) ke satu atau lebih server lain (slave). Fitur ini digunakan untuk meningkatkan ketersediaan data, skalabilitas, dan sebagai mekanisme cadangan.

Jenis Replication

  1. Master-Slave Replication - Data dikirim dari master ke satu atau lebih slave.
  2. Master-Master Replication - Kedua server bertindak sebagai master dan dapat menerima perubahan data.
  3. Group Replication - Beberapa server bekerja sebagai satu klaster yang saling mereplikasi data secara otomatis.
  4. Row-Based vs Statement-Based Replication - Replikasi dapat berbasis pernyataan SQL atau perubahan pada baris data.

Cara Konfigurasi Replication

1. Mengaktifkan Binary Log di Master

Tambahkan konfigurasi berikut ke my.cnf:

[mysqld]
log-bin=mysql-bin
server-id=1
binlog-do-db=nama_database

2. Konfigurasi Slave

Tambahkan konfigurasi berikut pada my.cnf slave:

[mysqld]
server-id=2
relay-log=relay-bin

3. Membuat Pengguna Replikasi

Di server master, buat pengguna khusus untuk replikasi:

CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;

4. Menghubungkan Slave ke Master

Jalankan perintah berikut di slave:

CHANGE MASTER TO 
MASTER_HOST='ip_master',
MASTER_USER='replicator',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=4;
START SLAVE;

Memeriksa Status Replication

Gunakan perintah berikut di slave untuk memeriksa status:

SHOW SLAVE STATUS\G;

Jika terdapat error, periksa Last_SQL_Error untuk mengetahui penyebabnya.

Keuntungan Menggunakan Replication

  • Meningkatkan Ketersediaan Data: Jika satu server gagal, yang lain dapat mengambil alih.
  • Memisahkan Beban Kerja: Query baca dapat diarahkan ke slave untuk mengurangi beban pada master.
  • Cadangan Data: Salinan data dapat digunakan untuk pemulihan jika terjadi kehilangan data.

Kesimpulan

Replication di MySQL adalah fitur penting yang membantu dalam meningkatkan keandalan dan kinerja database. Dengan konfigurasi yang tepat, database dapat lebih fleksibel dan tahan terhadap kegagalan sistem.