Strategi recovery dan pemulihan bencana
Berikut adalah lanjutan dari **Modul 10: Strategi Backup dan Recovery**, dengan fokus pada **strategi recovery dan pemulihan bencana (disaster recovery)**, lengkap dengan **contoh penerapan di MySQL Ubuntu 24.04**.
---
- 💾 **Modul 10 (Lanjutan): Strategi Backup dan Recovery**
- 📌 Topik: Strategi Recovery dan Pemulihan Bencana
- 💾 **Modul 10 (Lanjutan): Strategi Backup dan Recovery**
---
- 🎯 **Tujuan Pembelajaran**
Setelah mempelajari bagian ini, mahasiswa diharapkan mampu: - Memahami strategi pemulihan data dan layanan pasca-bencana. - Menyusun prosedur recovery dari backup penuh, incremental, dan log. - Mengimplementasikan rencana disaster recovery menggunakan MySQL di Ubuntu 24.04.
---
- ⚠️ **10.6 Apa Itu Pemulihan Bencana (Disaster Recovery)?**
- Disaster Recovery (DR)** adalah prosedur untuk memulihkan database dan sistem operasional pasca insiden besar seperti:
- Kegagalan server atau disk - Serangan siber (ransomware, DDoS) - Kebakaran atau bencana alam - Kerusakan sistem akibat kesalahan pengguna (drop table, delete massal)
---
- 🔁 **10.7 Strategi Recovery**
| Jenis Recovery | Penjelasan | |--------------------|----------------------------------------------------------------------------| | **Cold Recovery** | Recovery dari backup offline (misalnya `.sql` hasil `mysqldump`) | | **Point-in-Time Recovery (PITR)** | Mengembalikan data hingga waktu tertentu menggunakan binary log | | **Hot Standby** | Replikasi aktif yang bisa dialihkan (failover) secara langsung |
---
- 🛠️ **10.8 Contoh Prosedur Recovery di MySQL Ubuntu 24.04**
- 🧱 Skenario 1: **Full Restore dari Backup SQL**
- ✅ Langkah:
1. **Restore backup penuh** yang disimpan sebelumnya. 2. Jalankan file SQL dengan `mysql`.
```bash mysql -u root -p < /backup/full_backup_2025-04-10.sql ```
---
- ⏱️ Skenario 2: **Point-in-Time Recovery (PITR)**
- ✅ Syarat:
- Backup penuh tersedia. - Binary log diaktifkan (lihat Modul 10.3). - Ingin memulihkan data hingga sebelum insiden (misalnya jam 14:00).
- 📌 Langkah:
```bash
- Restore dari backup penuh
mysql -u root -p < /backup/full_backup_2025-04-10.sql
- Temukan posisi waktu dalam binary log
mysqlbinlog --start-datetime="2025-04-10 00:00:00" \
--stop-datetime="2025-04-10 13:59:59" \ /var/log/mysql/mysql-bin.000001 > /tmp/pitr.sql
- Jalankan hasil log untuk PITR
mysql -u root -p < /tmp/pitr.sql ```
---
- 🌪️ Skenario 3: **Simulasi Kehilangan Server (Disaster Recovery)**
- ✅ Langkah Pemulihan:
1. **Setup ulang MySQL** di server baru: ```bash sudo apt update sudo apt install mysql-server ```
2. **Salin file backup dari remote server atau cloud:** ```bash scp user@backup-server:/backup/full_backup_2025-04-10.sql . ```
3. **Restore database:** ```bash mysql -u root -p < full_backup_2025-04-10.sql ```
4. **Tambahkan data incremental atau log (jika ada).**
---
- 📋 **10.9 Rencana Recovery (Disaster Recovery Plan)**
- ✅ Komponen Utama DR Plan:
| Komponen | Penjelasan | |----------------------|------------------------------------------------------------------------------| | **RTO (Recovery Time Objective)** | Berapa cepat layanan harus pulih? (misalnya: 1 jam) | | **RPO (Recovery Point Objective)**| Seberapa banyak data bisa ditoleransi hilang? (misalnya: 10 menit) | | **Lokasi Backup** | Backup harus disimpan di lokasi terpisah (cloud atau data center lain) | | **Checklist Recovery**| Dokumen langkah-langkah pemulihan yang harus diuji secara berkala |
---
- 🛡️ **10.10 Tips Perlindungan Data Tambahan**
- Gunakan **cron job** untuk backup otomatis setiap hari/minggu. - Simpan backup di **3 lokasi berbeda** (local, remote, cloud). - Enkripsi file backup agar aman (misalnya: `gpg` atau `openssl`). - Uji restore secara berkala agar siap saat dibutuhkan.
---
- ✅ **10.11 Kesimpulan**
| Strategi Recovery | Kapan Digunakan | Perintah Kunci | |--------------------------|------------------------------------------------------|--------------------------------------| | Full Restore | Jika semua data hilang | `mysql < full_backup.sql` | | PITR (binary log) | Jika ingin rollback sebagian data | `mysqlbinlog --stop-datetime ...` | | Disaster Recovery Server | Jika server utama rusak total | `scp` + `mysql` install & restore |
---
Kalau kamu mau saya bantu buatkan skrip otomatisasi backup + recovery berbasis cron di Ubuntu, atau simulasi pemulihan dengan 2 server (failover sederhana), tinggal bilang saja!