Strategi recovery dan pemulihan bencana: Difference between revisions
From OnnoCenterWiki
Jump to navigationJump to search
Created page with "Berikut adalah lanjutan dari **Modul 10: Strategi Backup dan Recovery**, dengan fokus pada **strategi recovery dan pemulihan bencana (disaster recovery)**, lengkap dengan **co..." |
No edit summary |
||
| Line 1: | Line 1: | ||
==Tujuan Pembelajaran== | |||
Setelah mempelajari bagian ini, mahasiswa diharapkan mampu: | 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 | {| class="wikitable" | ||
|- | ! 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 | |||
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 | |||
mysql -u root -p < full_backup_2025-04-10.sql | |||
4. | 4. '''Tambahkan data incremental atau log (jika ada).''' | ||
==Rencana Recovery (Disaster Recovery Plan)== | |||
'''Komponen Utama DR Plan:''' | |||
| Komponen | {| class="wikitable" | ||
|- | ! 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== | |||
{| class="wikitable" | |||
! 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== | |||
* [[Database: Kuliah]] | |||
Latest revision as of 03:11, 21 April 2025
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 |