Tutorial 23 Aug 2026 2 Kali Dibaca

Cara Membuat Backup Database Laravel Otomatis Setiap Hari

Gugun Nurdiansyah
Penulis
Cara Membuat Backup Database Laravel Otomatis Setiap Hari

Mengapa Database Perlu Dibackup?

Database menyimpan data penting seperti:

  1. Data pengguna.

  2. Transaksi.

  3. Produk.

  4. Pelanggan.

  5. Pembayaran.

  6. Pengaturan aplikasi.

Jika server mengalami kerusakan, backup dapat digunakan untuk memulihkan data.

Untuk aplikasi bisnis, backup sebaiknya dilakukan secara rutin dan disimpan di lokasi yang berbeda dari server utama.

Menggunakan Laravel Backup

Salah satu solusi yang banyak digunakan adalah package Laravel Backup dari Spatie.

Install:

composer require spatie/laravel-backup

Kemudian publish konfigurasi:

php artisan vendor:publish \
--provider="Spatie\Backup\BackupServiceProvider"

Setelah itu akan tersedia konfigurasi:

config/backup.php

Konfigurasi ini dapat digunakan untuk menentukan database, file, storage, dan pengaturan backup lainnya.

Menjalankan Backup Manual

Sebelum membuat backup otomatis, lakukan pengujian terlebih dahulu:

php artisan backup:run

Jika berhasil, Laravel akan membuat file backup sesuai konfigurasi.

Untuk melihat daftar backup:

php artisan backup:list

Backup juga dapat dibersihkan menggunakan:

php artisan backup:clean

Membuat Backup Setiap Hari

Laravel menyediakan Scheduler untuk menjalankan perintah secara otomatis.

Contohnya:

Schedule::command('backup:run')
    ->dailyAt('02:00');

Kemudian backup dapat dibersihkan secara berkala:

Schedule::command('backup:clean')
    ->dailyAt('03:00');

Dengan konfigurasi tersebut:

02:00 → Backup database
03:00 → Bersihkan backup lama

Waktu dapat disesuaikan dengan kebutuhan aplikasi.

Menggunakan Cron Job

Scheduler Laravel tetap membutuhkan satu cron job pada server.

Contohnya:

* * * * * cd /var/www/app && php artisan schedule:run >> /dev/null 2>&1

Cron tersebut menjalankan Laravel Scheduler setiap menit.

Laravel kemudian menentukan task mana yang memang sudah waktunya dijalankan.

Pada cPanel, cron dapat ditambahkan melalui:

cPanel
↓
Cron Jobs
↓
Add New Cron Job

Kemudian masukkan:

* * * * * cd /home/username/public_html && php artisan schedule:run >> /dev/null 2>&1

Sesuaikan lokasi project dengan server yang digunakan.

Backup Database Saja

Jika hanya membutuhkan backup database, proses dapat dibuat lebih sederhana menggunakan command database seperti mysqldump atau pg_dump.

Contoh MySQL:

mysqldump \
-u username \
-p database_name \
> database_backup.sql

Contoh PostgreSQL:

pg_dump \
-U username \
database_name \
> database_backup.sql

Untuk aplikasi production, password database sebaiknya tidak ditulis langsung di command atau script yang dapat dibaca pengguna lain.

Menyimpan Backup di Server Berbeda

Jangan hanya menyimpan backup di server aplikasi.

Contohnya:

Server Laravel
      ↓
Backup
      ↓
Object Storage

Alternatif penyimpanan:

  1. Amazon S3.

  2. Google Cloud Storage.

  3. S3-compatible storage.

  4. Server backup terpisah.

  5. NAS.

  6. Cloud storage perusahaan.

Jika server utama rusak, backup masih tersedia di lokasi lain.

Strategi Backup 3-2-1

Untuk data penting, salah satu pendekatan yang dapat digunakan adalah konsep 3-2-1:

3 salinan data
2 media penyimpanan berbeda
1 salinan berada di lokasi berbeda

Contohnya:

Database Production
↓
Backup Server
↓
Object Storage

Strategi ini mengurangi risiko kehilangan seluruh salinan ketika terjadi kerusakan pada satu lokasi.

Backup Bukan Berarti Sudah Bisa Restore

Kesalahan yang sering terjadi adalah hanya membuat backup tanpa pernah melakukan pengujian restore.

Backup harus diuji secara berkala.

Contohnya:

Backup
↓
Download
↓
Restore ke database testing
↓
Periksa data

Pastikan:

  1. File backup dapat dibuka.

  2. Database dapat direstore.

  3. Data transaksi tersedia.

  4. Struktur tabel benar.

  5. Relasi database tetap berjalan.

Backup yang tidak pernah diuji belum tentu dapat digunakan ketika terjadi masalah.

Mengatur Retensi Backup

Jangan menyimpan backup selamanya tanpa batas.

Misalnya:

Backup harian → 14 hari
Backup mingguan → 8 minggu
Backup bulanan → 12 bulan

Strategi retensi dapat disesuaikan dengan kebutuhan bisnis dan kapasitas penyimpanan.

Tujuannya adalah menjaga keseimbangan antara keamanan data dan biaya storage.

Backup File Laravel

Database bukan satu-satunya data penting.

Aplikasi juga dapat memiliki:

storage/app
storage/uploads
Dokumen
Foto
File pelanggan
File invoice

Jika file tersebut tidak berada pada object storage, file juga perlu dibackup.

Contoh:

Database
+
File aplikasi
=
Backup lengkap

Monitoring Backup

Backup otomatis sebaiknya tidak berjalan tanpa monitoring.

Pastikan sistem dapat mendeteksi:

✓ Backup berhasil
✗ Backup gagal
✗ Storage penuh
✗ Database tidak dapat diakses
✗ Upload backup gagal

Notifikasi dapat dikirim melalui email, Slack, WhatsApp, atau sistem monitoring internal.

Contoh Arsitektur Backup

Untuk aplikasi Laravel production:

              Laravel Server
                   ↓
              Database
                   ↓
             Backup Process
              ↙         ↘
     Backup Server    Object Storage

Kemudian Laravel Scheduler menjalankan proses secara otomatis setiap hari.

Kesalahan yang Perlu Dihindari

Hanya Menyimpan Backup di Server Utama

Jika server rusak, backup juga dapat ikut hilang.

Tidak Menguji Restore

File backup belum tentu dapat direstore dengan sempurna.

Tidak Mengatur Retensi

Storage dapat penuh karena backup terus bertambah.

Tidak Mengenkripsi Backup

Backup dapat berisi data pelanggan dan informasi bisnis yang sensitif.

Tidak Memantau Status Backup

Backup yang gagal selama berhari-hari dapat tidak diketahui sampai terjadi masalah.

Backup Database Laravel Bersama Ovla Media

Ovla Media dapat membantu bisnis membangun sistem backup dan recovery untuk:

  1. Aplikasi Laravel.

  2. Database MySQL.

  3. Database PostgreSQL.

  4. VPS.

  5. cPanel.

  6. Server multi-aplikasi.

  7. Sistem Point of Sales.

  8. Sistem klinik.

  9. Sistem inventory.

  10. Aplikasi bisnis custom.

Backup dapat dikombinasikan dengan scheduler, cloud storage, monitoring, retensi otomatis, dan pengujian restore.

Kesimpulan

Backup database Laravel dapat dibuat otomatis menggunakan Laravel Scheduler dan cron job.

Alur sederhananya:

Laravel Scheduler
↓
Backup Database
↓
Simpan Backup
↓
Upload ke Storage
↓
Cleanup Backup Lama

Untuk aplikasi production, jangan hanya membuat backup. Pastikan backup disimpan di lokasi berbeda, memiliki retensi yang jelas, dipantau, dan diuji secara berkala.

Dengan sistem backup yang teratur, risiko kehilangan data akibat kerusakan server atau kesalahan operasional dapat dikurangi secara signifikan.

#Backup Laravel #Backup Database Laravel #Laravel Scheduler #Cron Job Laravel #Backup MySQL #Backup PostgreSQL #Laravel Production #Database Backup #Automatic Backup #Backup VPS #Backup cPanel #Cloud Backup #Disaster Recovery #Database Recovery #Laravel Security #Server Backup #Web Development #Aplikasi Bisnis #Ovla Media #Jasa Laravel
Beranda Produk Artikel
Konsultasi
OVLA

Navigasi Utama

Hubungi Kami

Mulai Konsultasi Sekarang