Replikasi database MySQL adalah proses membuat salinan database master ke satu atau lebih server replica, yang berguna untuk keperluan backup, load balancing, atau disaster recovery. Proses ini memastikan data yang ada di master tetap aman dan tersedia di replica jika terjadi kegagalan di server utama. Dalam artikel ini, kita akan membahas cara membuat replica database MySQL dan melakukan sinkronisasi secara realtime.
1. Setup Environment
Sebelum memulai, pastikan Anda memiliki:
- Dua server MySQL: Satu server akan berfungsi sebagai master, dan yang lainnya sebagai replica.
- Akses root ke kedua server untuk melakukan konfigurasi.
2. Konfigurasi Master Server
Langkah pertama adalah mengatur server master agar dapat mengirim perubahan data ke server replica.
a. Aktifkan Binary Logging
Binary log di MySQL mencatat semua perubahan yang dilakukan pada database. Log ini akan digunakan oleh server replica untuk melakukan sinkronisasi.
-
Buka file konfigurasi MySQL (
my.cnf
ataumy.ini
):sudo nano /etc/mysql/my.cnf
-
Tambahkan atau ubah baris berikut di bagian
[mysqld]
:[mysqld] log-bin=mysql-bin server-id=1
-
Simpan dan restart MySQL:
sudo systemctl restart mysql
b. Buat Pengguna Replikasi
Anda perlu membuat pengguna replikasi yang memiliki hak akses untuk membaca log binary dan terhubung ke server replica.
CREATE USER 'replica_user'@'%' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;
c. Catat Posisi Log Binary
Posisi log binary pada master perlu dicatat untuk memulai replikasi.
SHOW MASTER STATUS;
Catat nama file log dan posisi (File
dan Position
),
misalnya:
File: mysql-bin.000001
Position: 154
3. Konfigurasi Replica Server
Setelah master dikonfigurasi, Anda perlu mengatur server replica untuk mulai menarik data dari master.
a. Konfigurasi Server Replica
-
Buka file konfigurasi MySQL di server replica (
my.cnf
ataumy.ini
):sudo nano /etc/mysql/my.cnf
-
Tambahkan atau ubah baris berikut:
[mysqld] server-id=2 relay-log=relay-bin log-bin=mysql-bin
-
Simpan dan restart MySQL:
sudo systemctl restart mysql
b. Restore Backup dari Master (Opsional)
Jika replica belum memiliki data dari master, lakukan backup dari master dan restore ke replica:
mysqldump -u root -p --all-databases --master-data > master_backup.sql
mysql -u root -p < master_backup.sql
c. Atur Replikasi di Replica
Konfigurasi replica untuk mulai menarik perubahan dari master:
CHANGE MASTER TO
MASTER_HOST='master_ip_address',
MASTER_USER='replica_user',
MASTER_PASSWORD='replica_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLAVE;
4. Verifikasi Sinkronisasi
Untuk memastikan replikasi berjalan dengan baik, Anda bisa memeriksa status replikasi di server replica:
SHOW SLAVE STATUS\G;
Perhatikan baris Slave_IO_Running
dan
Slave_SQL_Running
yang seharusnya menunjukkan status
Yes
. Jika ada masalah, Anda bisa melihat kolom
Last_Error
untuk informasi lebih lanjut.
5. Mengelola dan Memantau Replikasi
Setelah konfigurasi, pastikan untuk terus memantau proses replikasi. Anda dapat menggunakan berbagai alat monitoring atau skrip otomatis untuk memastikan bahwa replikasi tetap berjalan dengan baik.
Kesimpulan
Replikasi database MySQL sangat penting untuk memastikan ketersediaan data dan menjaga integritas sistem, terutama dalam lingkungan produksi. Dengan mengikuti langkah-langkah di atas, Anda dapat membuat dan mengelola replikasi MySQL dengan sinkronisasi realtime yang andal.
Referensi
- MySQL Documentation: Replication in MySQL
- DigitalOcean Tutorial: How To Set Up MySQL Replication
- Percona Documentation: MySQL Replication Guide
Tidak ada komentar