diff --git a/docs/BACKUP_RESTORE.md b/docs/BACKUP_RESTORE.md index 4978d72..f6b3ed6 100644 --- a/docs/BACKUP_RESTORE.md +++ b/docs/BACKUP_RESTORE.md @@ -5,6 +5,8 @@ Panduan backup dan pemulihan data untuk project `database-kesiswaan`. Dokumen ini dibuat supaya admin atau operator server bisa menjalankan backup rutin **tanpa perlu masuk ke UI aplikasi**. Fokusnya sederhana: **mudah dijalankan, mudah dicek hasilnya, dan mudah dipulihkan saat terjadi masalah**. +> **Catatan penting:** backup yang berhasil dibuat **belum otomatis berarti aman**. Backup baru benar-benar dipercaya kalau **pernah diuji restore** atau minimal diverifikasi integritas filenya. Prinsip sederhananya: **backup yang belum pernah dites restore = belum terbukti aman**. + --- # 1. Yang Diamankan @@ -326,7 +328,36 @@ chmod 600 /var/www/database-kesiswaan/.env --- -# 15. Checklist Setelah Restore +# 15. Verifikasi Backup Setelah Dibuat + +Setelah backup selesai dibuat, sangat disarankan melakukan verifikasi ringan: + +## A. Cek integritas file backup database +```bash +gzip -t /var/backups/database-kesiswaan/database/nama-file.sql.gz +``` + +## B. Cek isi awal dump database +```bash +gunzip -c /var/backups/database-kesiswaan/database/nama-file.sql.gz | head +``` + +## C. Cek isi arsip dokumen +```bash +tar -tzf /var/backups/database-kesiswaan/files/nama-file.tar.gz | head +``` + +## D. Cek file `.env` backup +```bash +ls -lah /var/backups/database-kesiswaan/env +``` + +Verifikasi ringan ini membantu memastikan file backup tidak rusak secara kasat mata. +Namun, verifikasi terbaik tetap **uji restore** ke lokasi atau database test. + +--- + +# 16. Checklist Setelah Restore Setelah pemulihan selesai, cek hal berikut: @@ -343,7 +374,7 @@ Setelah pemulihan selesai, cek hal berikut: --- -# 16. Troubleshooting Ringan +# 17. Troubleshooting Ringan ## A. Error `mysqldump: command not found` Pastikan `mysqldump` tersedia di server. @@ -383,7 +414,7 @@ RETENTION_DAYS=30 ./scripts/backup-full-kesiswaan.sh --- -# 17. Rekomendasi Operasional +# 18. Rekomendasi Operasional 1. Gunakan **backup penuh harian**. 2. Kalau data aktif sering berubah, tambahkan **backup database tiap 6 jam**. @@ -394,7 +425,7 @@ RETENTION_DAYS=30 ./scripts/backup-full-kesiswaan.sh --- -# 18. Catatan Keamanan +# 19. Catatan Keamanan - Jangan expose `/var/backups/database-kesiswaan` ke publik. - Jangan commit file backup ke GitHub. @@ -403,7 +434,7 @@ RETENTION_DAYS=30 ./scripts/backup-full-kesiswaan.sh --- -# 19. Rekomendasi Paling Praktis +# 20. Rekomendasi Paling Praktis Kalau ingin paling sederhana dan aman, cukup lakukan dua hal ini: