Strategi recovery dan pemulihan bencana

From OnnoWiki
Revision as of 10:11, 21 April 2025 by Onnowpurbo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.

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)

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

Contoh Prosedur Recovery di MySQL Ubuntu 24.04

Skenario 1: Full Restore dari Backup SQL

Langkah:

  • Restore backup penuh yang disimpan sebelumnya.
  • Jalankan file SQL dengan `mysql`.
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:

# 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:

sudo apt update
sudo apt install mysql-server

2. Salin file backup dari remote server atau cloud:

scp user@backup-server:/backup/full_backup_2025-04-10.sql .

3. Restore database:

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

4. Tambahkan data incremental atau log (jika ada).


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


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.

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


Pranala Menarik