# Strategi Backup Otomatis & Pemulihan

Menjaga integritas data transaksi kasir dan jurnal umum Bebek Mba Reina adalah prioritas utama. Berikut adalah cara melakukan backup otomatis berkala di Shared Hosting cPanel.

---

## 1. Backup SQLite (Sederhana & Ringan)

Jika Anda menggunakan database default SQLite, proses backup sangat mudah karena seluruh data disimpan dalam satu file tunggal: `database/database.sqlite`.

### Script Cron Job Backup SQLite:
Daftarkan tugas berkala ini di **cPanel > Cron Jobs** untuk dieksekusi setiap malam jam 23:59:

```bash
# Membuat salinan backup database terkompresi dengan tanggal hari ini
tar -czf /home/username/backups/db_bebekreina_$(date +%F).tar.gz /home/username/erp-bebekmbareina-core/database/database.sqlite
```

---

## 2. Backup MySQL / MariaDB (Jika Menggunakan Database Relasional)

Jika Anda telah meng-upgrade database ke MySQL cPanel, gunakan `mysqldump` untuk membackup database.

### Script Cron Job Backup MySQL:
Daftarkan di **cPanel > Cron Jobs**:

```bash
# Backup database MySQL ke folder backups aman
mysqldump -u nama_user_db -p'password_db_anda' nama_db_anda | gzip > /home/username/backups/mysql_bebekreina_$(date +%F).sql.gz
```

---

## 3. Rotasi Backup (Pembersihan Otomatis)

Agar disk space hosting Anda tidak penuh oleh file-file cadangan lama, tambahkan perintah berikut di Cron Job mingguan Anda untuk menghapus backup yang berusia lebih dari 30 hari:

```bash
# Menghapus file backup yang berumur lebih dari 30 hari
find /home/username/backups/ -name "*.gz" -type f -mtime +30 -delete
```

---

## 4. Pemulihan Data (*Data Recovery*)

Jika terjadi kerusakan sistem dan Anda ingin mengembalikan data ke titik cadangan terakhir:

### Cara Restore SQLite:
1. Pastikan tidak ada transaksi aktif di kasir.
2. Hapus atau ganti nama file `database/database.sqlite` yang rusak.
3. Ekstrak file backup:
   ```bash
   tar -xzf /home/username/backups/db_bebekreina_2026-05-17.tar.gz -C /
   ```
4. Pastikan file permissions tetap `0664`.

### Cara Restore MySQL:
1. Masuk ke **cPanel > phpMyAdmin**.
2. Pilih database Anda, klik **Drop** untuk semua tabel.
3. Gunakan fitur **Import** untuk mengunggah file `.sql.gz` cadangan terakhir Anda.
