Arsitektur dan tantangan basis data terdistribusi

From OnnoWiki
Revision as of 10:48, 6 May 2025 by Onnowpurbo (talk | contribs) (→‎Kesimpulan)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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`


Pranala Menarik