Dalam MariaDB, terdapat dua pendekatan utama untuk mencapai Replikasi dan Ketersediaan Tinggi (High Availability, HA):
1. Replication (Replikasi)
Replikasi digunakan untuk menyalin data dari satu pelayan (master) ke satu atau lebih pelayan lain (slave). Ia berguna untuk beban kerja bacaan yang tinggi dan pemulihan bencana (disaster recovery).
Jenis Replikasi di MariaDB:
a) Master-Slave Replication
- Konsep: Data dihantar dari master ke slave secara asynchronous.
- Kegunaan:
- Skalabiliti Membaca (Read Scalability) – Beban bacaan diagihkan ke pelayan slave.
- Backup Data – Slave boleh digunakan untuk membuat backup tanpa membebankan pelayan master.
- Kelemahan:
- Tidak Menyokong Failover Otomatik – Jika master gagal, pengurusan manual diperlukan untuk beralih ke slave.
- Risiko Kehilangan Data (Lagging) – Slave mungkin tertinggal jika beban kerja tinggi.
Command Setup:
- Pada Master:
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
- Pada Slave:
CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replica_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS\G
b) Multi-Source Replication
- Konsep: Slave boleh mengambil data dari beberapa master sekaligus.
- Kegunaan:
- Penggabungan data dari beberapa sumber ke satu pangkalan data.
- Backup data yang lebih rumit dengan sokongan pelbagai pelayan.
- Kelemahan:
- Lebih kompleks untuk disiapkan dan dikendalikan.
c) Semisynchronous Replication
- Konsep: Slave perlu mengakui penerimaan data sebelum transaksi dianggap selesai di master.
- Kegunaan:
- Mengurangkan risiko kehilangan data.
- Sesuai untuk aplikasi yang memerlukan ketepatan data tinggi.
2. High Availability (Ketersediaan Tinggi, HA)
HA memastikan pangkalan data sentiasa boleh diakses walaupun berlaku kegagalan perkakasan atau sistem.
Pilihan HA dalam MariaDB:
a) Galera Cluster (Disyorkan untuk HA)
- Konsep: Menggunakan replikasi serentak (synchronous replication) untuk memastikan semua nod (nodes) dikemas kini secara masa nyata.
- Ciri-ciri Utama:
- Multi-Master Replication: Semua nod adalah master dan boleh menulis atau membaca data.
- Failover Otomatik: Jika satu nod gagal, nod lain mengambil alih secara automatik.
- Konsistensi Data Tinggi: Semua nod dijamin selaras kerana replikasi serentak.
- Load Balancing: Sokongan seimbang antara bacaan dan penulisan.
- Kegunaan:
- Sistem yang memerlukan ketersediaan tinggi dan zero downtime.
- Sesuai untuk aplikasi berasaskan awan dan mikrosistem (microservices).
Command Setup:
# Pada semua nod
sudo apt-get install galera-4 mariadb-server
Edit fail konfigurasi:
[mysqld]
binlog_format=ROW
default_storage_engine=InnoDB
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://node1_ip,node2_ip,node3_ip"
wsrep_cluster_name="my_cluster"
wsrep_node_address="node1_ip"
wsrep_node_name="node1"
Mulakan Galera:
sudo systemctl restart mariadb
b) MariaDB MaxScale (Proxy for HA):
- Konsep: Bertindak sebagai load balancer dan pengurus failover automatik untuk kluster MariaDB.
- Kegunaan:
- Mengarahkan trafik ke nod yang aktif.
- Mengendalikan failover tanpa perlu campur tangan manual.
- Kelemahan:
- Perlukan konfigurasi tambahan dan penyelenggaraan.
Command Setup:
sudo apt install maxscale
c) DRBD (Distributed Replicated Block Device):
- Konsep: Menggunakan replikasi tahap blok untuk menyalin data secara langsung antara pelayan.
- Kegunaan:
- Alternatif murah untuk penyimpanan bersama (shared storage).
- Sesuai untuk failover manual dengan downtime minimum.
- Kelemahan:
- Tidak sesuai untuk beban kerja tinggi.
Pilihan Terbaik: MariaDB Replication vs HA?
| Keperluan | Pilihan Sesuai |
|---|---|
| Backup Data & Skalabiliti Bacaan | Master-Slave Replication |
| Menggabungkan Data dari Pelbagai Sumber | Multi-Source Replication |
| Ketersediaan Tinggi (High Availability) | Galera Cluster atau MariaDB MaxScale |
| Sistem Analitik Besar | Galera Cluster dengan sokongan Parallel Query. |
| Kawalan Failover Automatik | Galera Cluster atau MaxScale Proxy untuk pengurusan. |
Kesimpulan:
- Jika memerlukan backup mudah atau disaster recovery, gunakan Master-Slave Replication.
- Untuk ketersediaan tinggi (HA) dan load balancing automatik, Galera Cluster adalah pilihan terbaik.
- Gunakan MaxScale sebagai lapisan tambahan untuk kawalan trafik dan failover automatik.