Perencanaan dan pengujian backup
Berikut adalah **Modul 10 (Lanjutan): Strategi Backup dan Recovery**, dengan fokus pada **Perencanaan dan Pengujian Backup**, serta **contoh implementasi di MySQL Ubuntu 24.04**.
---
- πΎ **Modul 10: Strategi Backup dan Recovery**
- π Topik: Perencanaan dan Pengujian Backup
- πΎ **Modul 10: Strategi Backup dan Recovery**
---
- π― **Tujuan Pembelajaran**
Setelah mempelajari bagian ini, mahasiswa diharapkan mampu: - Merancang strategi backup yang sesuai kebutuhan sistem. - Menyusun jadwal backup berkala (harian, mingguan). - Menguji keberhasilan backup dan memastikan file dapat di-*restore*. - Menerapkan praktik perencanaan backup di MySQL Ubuntu 24.04.
---
- π **10.12 Perencanaan Backup: Apa Saja yang Harus Dirancang?**
| Komponen | Penjelasan | |---------------------------|------------------------------------------------------------------------------| | **Jadwal Backup** | Kapan backup dilakukan (harian, mingguan, bulanan) | | **Jenis Backup** | Full, Incremental, Differential | | **Metode Penyimpanan** | Lokal, cloud, offsite, hybrid | | **Retention Policy** | Lama penyimpanan file backup (misal: 7 hari harian, 4 minggu mingguan) | | **Enkripsi** | Apakah file backup dienkripsi? | | **Pengujian Berkala** | Seberapa sering restore diuji? (misalnya setiap 1 minggu) |
---
- π **10.13 Contoh Strategi Backup MySQL Ubuntu 24.04**
- π― Skema:
- Backup harian (full) disimpan selama 7 hari. - Disimpan di folder `/var/backups/mysql/`. - Backup dilakukan setiap pukul 02.00 WIB.
- π Script Backup Harian (`/usr/local/bin/mysql_backup.sh`):
```bash
- !/bin/bash
- Konfigurasi
DB_USER="root" DB_PASS="password_mysql" BACKUP_DIR="/var/backups/mysql" DATE=$(date +%F)
- Buat folder jika belum ada
mkdir -p $BACKUP_DIR
- Backup semua database
mysqldump -u $DB_USER -p$DB_PASS --all-databases > $BACKUP_DIR/backup_$DATE.sql
- Hapus backup lebih dari 7 hari
find $BACKUP_DIR -type f -name "*.sql" -mtime +7 -delete ```
> π Simpan dan beri izin eksekusi: ```bash chmod +x /usr/local/bin/mysql_backup.sh ```
- β° Tambahkan Cron Job:
```bash sudo crontab -e ```
Tambahkan baris: ``` 0 2 * * * /usr/local/bin/mysql_backup.sh ```
---
- π§ͺ **10.14 Pengujian Backup (Restore Test)**
1. **Pilih file backup:** ```bash cd /var/backups/mysql/ ls -lh ```
2. **Restore ke database uji:** ```bash mysql -u root -p -e "CREATE DATABASE test_restore;" mysql -u root -p test_restore < backup_2025-04-13.sql ```
3. **Verifikasi isi database uji:** ```bash mysql -u root -p -e "SHOW TABLES IN test_restore;" ```
---
- β **10.15 Checklist Keberhasilan Backup**
| Item | Status | |-------------------------------------|---------------| | File backup tersimpan dengan benar | β | | Ukuran file wajar (>0 KB) | β | | Bisa di-*restore* ke database uji | β | | Struktur dan isi data sesuai | β | | File backup dienkripsi (opsional) | β οΈ | | Backup rutin terjadwal | β | | Retention policy berjalan | β |
---
- π§ **10.16 Tips Best Practice**
- Simpan backup di lokasi berbeda dari server produksi (offsite atau cloud). - Simpan backup minimal **3 versi terakhir**. - Lakukan **pengujian restore mingguan**. - Gunakan **logging** untuk mencatat keberhasilan/kelalaian backup.
---
- π **10.17 Kesimpulan**
- Perencanaan backup harus memperhatikan **jadwal**, **retensi**, dan **lokasi penyimpanan**. - Backup tidak cukup hanya dibuat β **harus diuji** secara rutin. - MySQL di Ubuntu 24.04 dapat di-backup otomatis menggunakan `cron + mysqldump`. - Restore test penting untuk memastikan backup **benar-benar dapat digunakan** saat dibutuhkan.
---
Kalau kamu mau saya bantu buat versi backup otomatis dengan **enkripsi GPG**, atau integrasi backup ke Google Drive/cloud storage, tinggal bilang ya!