Strategi recovery dan pemulihan bencana

From OnnoWiki
Jump to navigation Jump to search

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**.

---

    1. 💾 **Modul 10 (Lanjutan): Strategi Backup dan Recovery**
      1. 📌 Topik: Strategi Recovery dan Pemulihan Bencana

---

      1. 🎯 **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.

---

    1. ⚠️ **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)

---

    1. 🔁 **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 |

---

    1. 🛠️ **10.8 Contoh Prosedur Recovery di MySQL Ubuntu 24.04**
      1. 🧱 Skenario 1: **Full Restore dari Backup SQL**
        1. ✅ 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 ```

---

      1. ⏱️ Skenario 2: **Point-in-Time Recovery (PITR)**
        1. ✅ Syarat:

- Backup penuh tersedia. - Binary log diaktifkan (lihat Modul 10.3). - Ingin memulihkan data hingga sebelum insiden (misalnya jam 14:00).

        1. 📌 Langkah:

```bash

  1. Restore dari backup penuh

mysql -u root -p < /backup/full_backup_2025-04-10.sql

  1. 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
  1. Jalankan hasil log untuk PITR

mysql -u root -p < /tmp/pitr.sql ```

---

      1. 🌪️ Skenario 3: **Simulasi Kehilangan Server (Disaster Recovery)**
        1. ✅ 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).**

---

    1. 📋 **10.9 Rencana Recovery (Disaster Recovery Plan)**
      1. ✅ 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 |

---

    1. 🛡️ **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.

---

    1. ✅ **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!