Difference between revisions of "Perencanaan dan pengujian backup"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "Berikut adalah **Modul 10 (Lanjutan): Strategi Backup dan Recovery**, dengan fokus pada **Perencanaan dan Pengujian Backup**, serta **contoh implementasi di MySQL Ubuntu 24.04...")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Berikut adalah **Modul 10 (Lanjutan): Strategi Backup dan Recovery**, dengan fokus pada **Perencanaan dan Pengujian Backup**, serta **contoh implementasi di MySQL Ubuntu 24.04**.
+
Berikut adalah '''Modul: Strategi Backup dan Recovery''', dengan fokus pada '''Perencanaan dan Pengujian Backup''', serta '''contoh implementasi di MySQL Ubuntu 24.04'''.
  
---
+
==Strategi Backup dan Recovery==
  
## 💾 **Modul 10: Strategi Backup dan Recovery** 
+
Topik: Perencanaan dan Pengujian Backup
### 📌 Topik: Perencanaan dan Pengujian Backup
 
  
---
 
  
### 🎯 **Tujuan Pembelajaran**
+
==Tujuan Pembelajaran==
 +
 
 
Setelah mempelajari bagian ini, mahasiswa diharapkan mampu:
 
Setelah mempelajari bagian ini, mahasiswa diharapkan mampu:
- Merancang strategi backup yang sesuai kebutuhan sistem.
+
* Merancang strategi backup yang sesuai kebutuhan sistem.
- Menyusun jadwal backup berkala (harian, mingguan).
+
* Menyusun jadwal backup berkala (harian, mingguan).
- Menguji keberhasilan backup dan memastikan file dapat di-*restore*.
+
* Menguji keberhasilan backup dan memastikan file dapat di-*restore*.
- Menerapkan praktik perencanaan backup di MySQL Ubuntu 24.04.
+
* Menerapkan praktik perencanaan backup di MySQL Ubuntu 24.04.
  
---
 
  
## 📚 **10.12 Perencanaan Backup: Apa Saja yang Harus Dirancang?**
 
  
| Komponen                  | Penjelasan                                                                |
+
==Perencanaan Backup: Apa Saja yang Harus Dirancang?==
|---------------------------|------------------------------------------------------------------------------|
 
| **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)                  |
 
  
---
+
{| class="wikitable"
 +
! 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**
+
==Contoh Strategi Backup MySQL Ubuntu 24.04==
  
### 🎯 Skema:
+
'''Skema:'''
- Backup harian (full) disimpan selama 7 hari.
+
* Backup harian (full) disimpan selama 7 hari.
- Disimpan di folder `/var/backups/mysql/`.
+
* Disimpan di folder `/var/backups/mysql/`.
- Backup dilakukan setiap pukul 02.00 WIB.
+
* Backup dilakukan setiap pukul 02.00 WIB.
  
### 📄 Script Backup Harian (`/usr/local/bin/mysql_backup.sh`):
+
'''Script Backup Harian (`/usr/local/bin/mysql_backup.sh`):'''
  
```bash
+
#!/bin/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
  
# Konfigurasi
+
Simpan dan beri izin eksekusi: 
DB_USER="root"
 
DB_PASS="password_mysql"
 
BACKUP_DIR="/var/backups/mysql"
 
DATE=$(date +%F)
 
  
# Buat folder jika belum ada
+
chmod +x /usr/local/bin/mysql_backup.sh
mkdir -p $BACKUP_DIR
 
  
# Backup semua database
+
'''Tambahkan Cron Job:'''
mysqldump -u $DB_USER -p$DB_PASS --all-databases > $BACKUP_DIR/backup_$DATE.sql
 
  
# Hapus backup lebih dari 7 hari
+
sudo crontab -e
find $BACKUP_DIR -type f -name "*.sql" -mtime +7 -delete
 
```
 
  
> 🛑 Simpan dan beri izin eksekusi:
+
Tambahkan baris:
```bash
 
chmod +x /usr/local/bin/mysql_backup.sh
 
```
 
  
### ⏰ Tambahkan Cron Job:
+
0 2 * * * /usr/local/bin/mysql_backup.sh
  
```bash
+
==Pengujian Backup (Restore Test)==
sudo crontab -e
 
```
 
  
Tambahkan baris:
+
'''Pilih file backup:'''
```
 
0 2 * * * /usr/local/bin/mysql_backup.sh
 
```
 
  
---
+
cd /var/backups/mysql/
 +
ls -lh
  
## 🧪 **10.14 Pengujian Backup (Restore Test)**
+
'''Restore ke database uji:'''
  
1. **Pilih file backup:**
+
mysql -u root -p -e "CREATE DATABASE test_restore;"
```bash
+
mysql -u root -p test_restore < backup_2025-04-13.sql
cd /var/backups/mysql/
 
ls -lh
 
```
 
  
2. **Restore ke database uji:**
+
'''Verifikasi isi 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:**
+
mysql -u root -p -e "SHOW TABLES IN test_restore;"
```bash
 
mysql -u root -p -e "SHOW TABLES IN test_restore;"
 
```
 
  
---
 
  
## ✅ **10.15 Checklist Keberhasilan Backup**
+
==Checklist Keberhasilan Backup==
  
| Item                                | Status       |
+
{| class="wikitable"
|-------------------------------------|---------------|
+
! Item                                !! Status
| File backup tersimpan dengan benar  | ✅             |
+
|-
| Ukuran file wajar (>0 KB)          | ✅             |
+
| File backup tersimpan dengan benar  || ✅
| Bisa di-*restore* ke database uji  | ✅             |
+
|-
| Struktur dan isi data sesuai        | ✅             |
+
| Ukuran file wajar (>0 KB)          || ✅
| File backup dienkripsi (opsional)  | ⚠️             |
+
|-
| Backup rutin terjadwal              | ✅             |
+
| Bisa di-*restore* ke database uji  || ✅
| Retention policy berjalan          | ✅             |
+
|-
 +
| Struktur dan isi data sesuai        || ✅
 +
|-
 +
| File backup dienkripsi (opsional)  || ⚠️
 +
|-
 +
| Backup rutin terjadwal              || ✅
 +
|-
 +
| Retention policy berjalan          || ✅
 +
|}
  
---
 
  
## 🧠 **10.16 Tips Best Practice**
+
==Tips Best Practice==
  
- Simpan backup di lokasi berbeda dari server produksi (offsite atau cloud).
+
* Simpan backup di lokasi berbeda dari server produksi (offsite atau cloud).
- Simpan backup minimal **3 versi terakhir**.
+
* Simpan backup minimal '''3 versi terakhir'''.
- Lakukan **pengujian restore mingguan**.
+
* Lakukan '''pengujian restore mingguan'''.
- Gunakan **logging** untuk mencatat keberhasilan/kelalaian backup.
+
* Gunakan '''logging''' untuk mencatat keberhasilan/kelalaian backup.
  
---
+
==Kesimpulan==
  
## 📌 **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.
  
- 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.
 
  
---
+
==Pranala Menarik==
  
Kalau kamu mau saya bantu buat versi backup otomatis dengan **enkripsi GPG**, atau integrasi backup ke Google Drive/cloud storage, tinggal bilang ya!
+
* [[Database: Kuliah]]

Latest revision as of 10:14, 6 May 2025

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

Strategi Backup dan Recovery

Topik: Perencanaan dan Pengujian Backup


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.


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)

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`):

#!/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:

chmod +x /usr/local/bin/mysql_backup.sh

Tambahkan Cron Job:

sudo crontab -e

Tambahkan baris:

0 2 * * * /usr/local/bin/mysql_backup.sh

Pengujian Backup (Restore Test)

Pilih file backup:

cd /var/backups/mysql/
ls -lh

Restore ke database uji:

mysql -u root -p -e "CREATE DATABASE test_restore;"
mysql -u root -p test_restore < backup_2025-04-13.sql

Verifikasi isi database uji:

mysql -u root -p -e "SHOW TABLES IN test_restore;"


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


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.

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.


Pranala Menarik