Belajar Bacula - Restore Workflow
Episode 8 of 23

Belajar Bacula - Restore Workflow

Episode ini memandu restore workflow Bacula: membangun restore job interaktif dari bconsole dengan memilih client, FileSet, dan waktu, mengarahkan hasil ke lokasi asli atau alternatif memakai where= dan replace=, serta praktik restore drill rutin ke direktori pengujian dengan verifikasi file.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

Seluruh episode sebelumnya membangun satu hal: kemampuan memulihkan data. Sebuah sistem backup yang tidak pernah diuji restore-nya bukanlah sistem backup — ia hanyalah proses menyalin file. Di episode 8 kita melakukan yang paling penting: memulihkan data dari volume kembali ke client, dengan kontrol penuh atas lokasi dan perilaku penimpaan.

Kita akan membangun restore job lewat bconsole, memahami parameter where dan replace, lalu menutup dengan praktik restore drill — rutinitas yang memisahkan admin yang profesional dari yang sekadar menjalankan job.

Membangun Restore Job

Perintah restore

Di bconsole, ketik:

Mulai restore interaktif
* restore

Bacula membuka menu pilihan cara menemukan file yang akan dipulihkan:

Menu restore bconsole
To select the JobIds, you have the following options:
  1: List last 20 Jobs
  2: List Jobs where a given File is saved
  3: Enter list of JobIds to select from
  4: Find the JobIds for a File in a given Job
  5: Find the JobIds for a File in the last 20 Jobs
  6: Find the JobIds for a File in the last 20 Jobs for a Client
  7: Enter a list of Paths to look up
  8: Enter a list of Client names
  9: Enter a list of Restore Job names
Select item:

Opsi yang paling sering dipakai:

  • 1 — pilih dari 20 job terakhir.
  • 2 — cari job yang menyimpan sebuah file tertentu.
  • 8 — pilih berdasarkan client.

Pilih 1, lalu pilih JobId dari backup yang ingin dipulihkan. Bacula menanyakan konfirmasi dan membangun restore job:

Konfirmasi restore job
The defined Restore Job is:
Restore Job Parameters:
  Job:        RestoreFiles
  Client:     client-fd
  Storage:    FileStorage
  Pool:       FilePool
  FileSet:    Set Web
  Restore Job:  RestoreFiles
  Where:      /tmp/bacula-restores
  Replace:    always
  JobId(s) to restore: 1
OK to run? (yes/mod/no):

Memilih Waktu dan Client

Restore berbasis catalog berarti Bacula mencari file pada titik waktu tertentu. Pilihan JobIds menentukan titik itu: pilih JobId backup terakhir sebelum kejadian data hilang. Jika tidak yakin, pilih JobId full terbaru lalu incremental setelahnya — Bacula memulihkan kondisi file sesuai versi di catalog.

Kalian juga bisa memulihkan data backup client A ke client B — cukup pilih client tujuan saat menu. Ini berguna untuk migrasi server atau mengganti hardware.

where dan replace

where: Lokasi Pemulihan

Parameter Where menentukan direktori tujuan di client. Ini adalah pelindung terbesar kalian:

  • Where = /tmp/bacula-restores — memulihkan ke direktori pengujian, tidak menyentuh data asli.
  • Where = / — memulihkan ke lokasi asli (path di backup dipetakan langsung).
Set where saat konfirmasi
OK to run? (yes/mod/no): mod
... pilih "Where" lalu isi path ...

Selalu mulai dengan where non-root untuk memverifikasi hasil sebelum menimpa data asli.

replace: Perilaku Penimpaan

Replace menentukan apa yang terjadi jika file dengan nama yang sama sudah ada di tujuan:

  • Replace = always — timpa tanpa bertanya.
  • Replace = never — jangan timpa; simpan file hasil restore dengan nama lain.
  • Replace = ifnewer — timpa hanya jika file backup lebih baru.
  • Replace = ifolder — timpa hanya jika file backup lebih lama.

Aturan yang aman:

Nilai replace yang aman
* restore ... replace=ifnewer where=/tmp/bacula-restores

Warning

replace=always dengan where=/ menimpa file yang sedang hidup tanpa konfirmasi. Dalam skenario bencana, ini memang yang diinginkan — tetapi untuk pengujian atau restore parsial, ifnewer atau direktori terpisah jauh lebih aman.

Restore Drill ke Direktori Pengujian

Prosedur Standar

Best practice nomor satu dalam administrasi backup: latihan restore rutin. Prosedurnya:

Restore drill
* restore jobid=1 where=/tmp/bacula-test replace=ifnewer

Setelah job selesai (Terminated, status Restore OK), verifikasi:

Verifikasi hasil restore
ls -l /tmp/bacula-test/var/www/index.html
cat /tmp/bacula-test/var/www/index.html

Bandingkan dengan file asli:

Bandingkan checksum
sha256sum /var/www/index.html /tmp/bacula-test/var/www/index.html

Checksum yang identik adalah bukti restore yang sah.

Kapan Melakukan Drill

  • Setiap kali konfigurasi FileSet/Pool berubah.
  • Setiap rilis Bacula baru (regression test).
  • Terjadwal minimum bulanan untuk job kritis — dan segera setelah peristiwa besar (migrasi, upgrade, kejadian kehilangan data).

Tip

Otomatiskan drill: jalankan restore job malam hari ke direktori /tmp/restore-test-$(date), cek statusnya, dan kirim alert jika bukan Restore OK. Backup yang tidak pernah diuji adalah harapan yang rapuh.

Skenario Restore Nyata

File Tunggal yang Terhapus

Restore satu file
* restore
... pilih opsi 2: cari JobIds yang menyimpan file ...
Path to File: /var/www/index.html

Bacula menemukan job yang menyimpan file tersebut dan membangun restore untuknya — tanpa perlu tahu volume atau job tertentu.

Pulihkan ke Mesin Baru

Install FD di mesin baru, definisikan Client baru di Director, lalu saat restore pilih mesin baru sebagai tujuan. Bacula akan memulihkan data ke mesin pengganti dengan path sesuai where. Ini dasar migrasi disaster recovery lintas hardware.

Penutup

Inti yang harus dibawa pulang:

  • restore di bconsole membangun restore job dari pilihan JobId/client/waktu.
  • where menentukan lokasi tujuan; replace menentukan perilaku penimpaan.
  • Untuk pengujian, selalu where=/tmp/... dan replace=ifnewer.
  • Restore drill rutin dengan verifikasi checksum adalah wajib.
  • Catalog memungkinkan restore per-file tanpa tahu volume spesifik.

Di episode 9 selanjutnya kita akan memverifikasi data dan mengelola autoprune — menjalankan job Verify untuk membandingkan client dengan catalog, memeriksa list volumes, memicu prune/purge untuk konsistensi catalog, dan memastikan catalog itu sendiri selalu di-backup. Inilah kunci kepercayaan terhadap sistem backup kalian.

Belajar Bacula - Restore Workflow | Belajar Bacula