Arsitektur dan tantangan basis data terdistribusi
Berikut adalah Sistem Basis Data Terdistribusi, dengan fokus pada arsitektur dan tantangan sistem basis data terdistribusi, serta contoh konfigurasi replikasi MySQL di Ubuntu 24.04 sebagai salah satu implementasinya.
Sistem Basis Data Terdistribusi
Arsitektur dan Tantangan Basis Data Terdistribusi
Tujuan Pembelajaran
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:
- Memahami konsep dan arsitektur sistem basis data terdistribusi.
- Menjelaskan tantangan dalam mengelola database yang tersebar.
- Menerapkan contoh sistem terdistribusi menggunakan MySQL replikasi di Ubuntu 24.04.
Apa Itu Basis Data Terdistribusi?
Basis data terdistribusi adalah sistem database di mana data tersimpan di beberapa lokasi fisik berbeda, tetapi dikelola secara logis sebagai satu kesatuan sistem. Tiap lokasi disebut node.
Arsitektur Basis Data Terdistribusi
Arsitektur | Penjelasan |
---|---|
Homogeneous | Semua node menggunakan DBMS yang sama (contoh: MySQL–MySQL) |
Heterogeneous | Node menggunakan DBMS berbeda (contoh: MySQL–PostgreSQL) |
Client-Server | Klien mengakses node tertentu melalui middleware |
Peer-to-Peer | Semua node saling berinteraksi secara setara |
Replication-Based | Data disalin (sinkron/async) antar node untuk meningkatkan keandalan |
Tantangan Basis Data Terdistribusi
Tantangan | Penjelasan |
---|---|
1. Konsistensi Data | Sinkronisasi data antar lokasi bisa menyebabkan konflik atau duplikasi |
2. Keterlambatan (Latency) | Performa terganggu karena jarak antar node dan waktu propagasi |
3. Manajemen Replikasi | Menentukan kapan dan bagaimana data disalin antar server |
4. Keamanan dan Akses | Data tersebar di banyak lokasi → meningkatkan risiko kebocoran |
5. Ketersediaan dan Failover | Node harus tetap aktif jika node lain gagal |
Contoh Implementasi MySQL Terdistribusi: Replikasi Master-Slave
Tujuan:
- Master menerima semua operasi `INSERT`, `UPDATE`, `DELETE`.
- Slave menyalin data secara real-time (read-only replica).
Langkah Setup Replikasi MySQL di Ubuntu 24.04
1. Konfigurasi Server Master
Edit `/etc/mysql/mysql.conf.d/mysqld.cnf`:
[mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log bind-address = 0.0.0.0
Restart MySQL:
sudo systemctl restart mysql
Buat user replikasi:
CREATE USER 'repl'@'%' IDENTIFIED BY 'replica123'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;
Ambil status log:
SHOW MASTER STATUS;
Catat: `File` dan `Position`
2. Konfigurasi Server Slave
Edit `/etc/mysql/mysql.conf.d/mysqld.cnf`:
[mysqld] server-id = 2 relay-log = /var/log/mysql/mysql-relay-bin
Restart:
sudo systemctl restart mysql
Set konfigurasi replikasi:
CHANGE MASTER TO MASTER_HOST='ip_master', MASTER_USER='repl', MASTER_PASSWORD='replica123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=12345; START SLAVE;
3. Verifikasi Replikasi
SHOW SLAVE STATUS\G
Periksa:
- `Slave_IO_Running: Yes`
- `Slave_SQL_Running: Yes`
Kesimpulan
Aspek | Penjelasan |
---|---|
Arsitektur Umum | Homogen, heterogen, client-server, P2P, replikasi |
Tantangan Umum | Konsistensi, replikasi, keamanan, latency |
Contoh Implementasi | MySQL Master-Slave (replikasi async) |
Tools Ubuntu | `mysqldump`, `mysqlbinlog`, konfigurasi `mysqld.cnf` |