Backup & Restore

Adi Purnama

Adi Purnama

Database backup jadi salah satu hal yang sangat penting untuk setiap aplikasi yang rilis ke production. Apalagi, aplikasi kita udah punya user aktif dan udah menghasilkan revenue dari penjualan/subscription.

Setiap plugin yang disediakan oleh Dokku sudah mendukung backup database. Kita bisa menggunakan penyimpanan yang S3-compatible untuk backup database.

Saya pakai contoh plugin PostgreSQL aja ya, karena plugin ini yang saya pakai saat ini.

Autentikasi

Pertama, kita perlu lakukan authentication terhadap layanan S3 atau S3-compatible yang kita pakai.

dokku postgres:backup-auth

``, ``, ``, dan `` bisa diperoleh dari informasi akun layanan S3 atau S3-compatible masing-masing. `` biasanya saya isi dengan nilai `s3v4` aja.

Backup & Schedule

Setelah proses autentikasi berhasil, backup udah bisa dilakukan.

postgres:backup

Hasil backup berupa file `.tar.gz` yang isinya adalah sebuah file bernama `export`.

Backup bisa dilakukan setiap interval waktu tertentu.

dokku postgres:backup-schedule

Ganti `` dengan format jadwal pada crontab. Contohnya, `"0 17 * * *"`, maka proses backup akan dilakukan setiap hari jam 17:00 UTC, atau sekitar jam 12 malam WIB. Kalau bingung cara bacanya, bisa coba akses web https://crontab.guru, paste format-nya di sana maka otomatis akan terkonversi menjadi format yang mudah dipahami.

Restore

Jika suatu hal mengakibatkan kita perlu restore database, entah itu pindah server atau ada insiden, kita bisa melakukannya dengan cara berikut:

  1. Download database backup terakhir di S3 atau S3-compatible storage
  2. Simpan data tersebut di server
  3. Exctract file backup untuk mendapatkan file `export`
  4. Jalankan perintah tersebut untuk restore database
dokku postgres:import app-name < backup-folder/export