Panduan Backup & Restore Server yang Benar — Aturan 3-2-1 untuk Bisnis
27 April 2026

Pertanyaan bukan "apakah" server Anda akan crash, tapi "kapan". Hardware bisa rusak, ransomware bisa menyerang, atau seseorang dalam tim bisa rm -rf direktori penting. Strategi backup yang baik adalah perbedaan antara insiden 30 menit dan insiden yang menghancurkan bisnis.
Aturan Emas: 3-2-1
- 3 salinan data (1 utama + 2 backup)
- 2 media penyimpanan berbeda (mis. lokal + object storage)
- 1 salinan disimpan off-site (di lokasi geografis berbeda)
Pahami RPO dan RTO
RPO (Recovery Point Objective): berapa banyak data yang sanggup Anda kehilangan? Jika backup tiap 24 jam, RPO Anda 24 jam.
RTO (Recovery Time Objective): berapa lama waktu maksimum recovery? Jika butuh 4 jam, infrastruktur backup harus mendukung restore dalam 4 jam.
Apa Saja yang Harus Di-backup?
- Database (MySQL/PostgreSQL/MongoDB) — full + incremental
- File aplikasi & user upload (mis.
/var/www,/home) - Konfigurasi (
/etc) — sering diabaikan, padahal vital - Cron jobs & scripts custom
- Container images / volume Docker
Tool 1: Restic — Backup Modern dengan Enkripsi
Restic adalah tool backup yang fast, encrypted, dan deduplicated. Mendukung backend lokal, S3, Backblaze B2, SFTP, dan banyak lagi.
# Init repo (sekali)
restic -r s3:s3.amazonaws.com/my-bucket init
# Backup
restic -r s3:... backup /var/www /etc
# List snapshot
restic -r s3:... snapshots
# Restore
restic -r s3:... restore latest --target /tmp/restore
Tool 2: BorgBackup — Pilihan Power User
Mirip restic, dengan deduplication chunk-level yang sangat efisien. Cocok untuk backup banyak server ke satu remote repo.
borg init --encryption=repokey backup-server:/repo
borg create backup-server:/repo::{hostname}-{now} /var/www /etc
borg prune backup-server:/repo --keep-daily=7 --keep-weekly=4 --keep-monthly=6
Tool 3: Rsync — Sederhana & Fleksibel
Untuk backup sederhana antar server tanpa enkripsi:
rsync -aAX --delete /var/www/ backup-server:/backups/var-www/
Backup Database dengan Benar
Jangan hanya copy file /var/lib/mysql — kemungkinan rusak. Pakai dump:
# MySQL/MariaDB
mysqldump --single-transaction --quick --all-databases | gzip > db-$(date +%F).sql.gz
# PostgreSQL
pg_dumpall | gzip > pg-$(date +%F).sql.gz
Otomatisasi dengan Cron
# /etc/cron.d/backup
0 2 * * * root /usr/local/bin/backup-script.sh
30 2 * * 0 root /usr/local/bin/backup-fullsync.sh
Wajib: Test Restore Secara Berkala
Backup yang tidak pernah di-test = backup yang tidak ada. Jadwalkan restore drill minimal sebulan sekali ke server staging. Catat waktu restore (RTO aktual) untuk evaluasi.
Off-site Storage Murah
| Provider | Harga (per GB/bulan) | Catatan |
|---|---|---|
| Backblaze B2 | ~$0.006 | Termurah, S3 compatible |
| Wasabi | ~$0.0069 | Tidak ada egress fee |
| Cloudflare R2 | ~$0.015 | Egress gratis |
| AWS S3 | ~$0.023 | Standar industri |
Kesimpulan
Backup adalah asuransi — Anda berharap tidak pernah membutuhkannya, tapi jika dibutuhkan, dia harus ada dan berfungsi. Mulailah hari ini juga: install restic atau BorgBackup, jadwalkan cron harian, dan test restore minggu depan. Setiap hari tanpa backup adalah hari di mana Anda berjudi dengan bisnis Anda.