Perencanaan dan pengujian backup

From OnnoWiki
Jump to navigation Jump to search

Berikut adalah **Modul 10 (Lanjutan): Strategi Backup dan Recovery**, dengan fokus pada **Perencanaan dan Pengujian Backup**, serta **contoh implementasi di MySQL Ubuntu 24.04**.

---

    1. πŸ’Ύ **Modul 10: Strategi Backup dan Recovery**
      1. πŸ“Œ Topik: Perencanaan dan Pengujian Backup

---

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

---

    1. πŸ“š **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) |

---

    1. πŸ“† **10.13 Contoh Strategi Backup MySQL Ubuntu 24.04**
      1. 🎯 Skema:

- Backup harian (full) disimpan selama 7 hari. - Disimpan di folder `/var/backups/mysql/`. - Backup dilakukan setiap pukul 02.00 WIB.

      1. πŸ“„ Script Backup Harian (`/usr/local/bin/mysql_backup.sh`):

```bash

  1. !/bin/bash
  1. Konfigurasi

DB_USER="root" DB_PASS="password_mysql" BACKUP_DIR="/var/backups/mysql" DATE=$(date +%F)

  1. Buat folder jika belum ada

mkdir -p $BACKUP_DIR

  1. Backup semua database

mysqldump -u $DB_USER -p$DB_PASS --all-databases > $BACKUP_DIR/backup_$DATE.sql

  1. 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 ```

      1. ⏰ Tambahkan Cron Job:

```bash sudo crontab -e ```

Tambahkan baris: ``` 0 2 * * * /usr/local/bin/mysql_backup.sh ```

---

    1. πŸ§ͺ **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;" ```

---

    1. βœ… **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 | βœ… |

---

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

---

    1. πŸ“Œ **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!