Difference between revisions of "Strategi recovery dan pemulihan bencana"
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
Onnowpurbo (talk | contribs)  (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...")  | 
				Onnowpurbo (talk | contribs)   | 
				||
| 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 10: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 |