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
- Master-Slave Replication - Data dikirim dari master ke satu atau lebih slave.
- Master-Master Replication - Kedua server bertindak sebagai master dan dapat menerima perubahan data.
- Group Replication - Beberapa server bekerja sebagai satu klaster yang saling mereplikasi data secara otomatis.
- 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.