Difference between revisions of "Arsitektur dan tantangan basis data terdistribusi"
Onnowpurbo (talk | contribs) (Created page with "Berikut adalah **Modul 11: Sistem Basis Data Terdistribusi**, dengan fokus pada **arsitektur** dan **tantangan** sistem basis data terdistribusi, serta **contoh konfigurasi re...") |
Onnowpurbo (talk | contribs) |
||
Line 1: | Line 1: | ||
− | Berikut adalah | + | 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: | 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== | |
− | | | + | {| class="wikitable" |
− | | | + | ! 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== | |
− | + | {| class="wikitable" | |
+ | ! 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`: | Edit `/etc/mysql/mysql.conf.d/mysqld.cnf`: | ||
− | + | [mysqld] | |
− | [mysqld] | + | server-id = 1 |
− | server-id = 1 | + | log_bin = /var/log/mysql/mysql-bin.log |
− | log_bin = /var/log/mysql/mysql-bin.log | + | bind-address = 0.0.0.0 |
− | bind-address = 0.0.0.0 | ||
− | |||
Restart MySQL: | Restart MySQL: | ||
− | + | sudo systemctl restart mysql | |
− | sudo systemctl restart mysql | ||
− | |||
Buat user replikasi: | Buat user replikasi: | ||
− | + | CREATE USER 'repl'@'%' IDENTIFIED BY 'replica123'; | |
− | CREATE USER 'repl'@'%' IDENTIFIED BY 'replica123'; | + | GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; |
− | GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; | + | FLUSH PRIVILEGES; |
− | FLUSH PRIVILEGES; | ||
− | |||
Ambil status log: | Ambil status log: | ||
− | + | SHOW MASTER STATUS; | |
− | SHOW MASTER STATUS; | ||
− | |||
Catat: `File` dan `Position` | Catat: `File` dan `Position` | ||
− | + | '''2. Konfigurasi Server Slave''' | |
− | |||
− | |||
Edit `/etc/mysql/mysql.conf.d/mysqld.cnf`: | Edit `/etc/mysql/mysql.conf.d/mysqld.cnf`: | ||
− | + | [mysqld] | |
− | [mysqld] | + | server-id = 2 |
− | server-id = 2 | + | relay-log = /var/log/mysql/mysql-relay-bin |
− | relay-log = /var/log/mysql/mysql-relay-bin | ||
− | |||
Restart: | Restart: | ||
− | + | sudo systemctl restart mysql | |
− | sudo systemctl restart mysql | ||
− | |||
Set konfigurasi replikasi: | Set konfigurasi replikasi: | ||
− | + | CHANGE MASTER TO | |
− | 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; | |
− | START SLAVE; | ||
− | |||
− | |||
− | |||
− | + | '''3. Verifikasi Replikasi''' | |
− | + | SHOW SLAVE STATUS\G | |
− | SHOW SLAVE STATUS\G | ||
− | |||
Periksa: | Periksa: | ||
− | + | * `Slave_IO_Running: Yes` | |
− | + | * `Slave_SQL_Running: Yes` | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ==Kesimpulan== | |
− | + | {| class="wikitable" | |
+ | ! 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` | ||
+ | |} |
Revision as of 10:42, 6 May 2025
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` |