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.

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.
Di bconsole, ketik:
* restoreBacula membuka menu pilihan cara menemukan file yang akan dipulihkan:
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:
Pilih 1, lalu pilih JobId dari backup yang ingin dipulihkan. Bacula menanyakan konfirmasi dan membangun 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):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.
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).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 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:
* restore ... replace=ifnewer where=/tmp/bacula-restoresWarning
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.
Best practice nomor satu dalam administrasi backup: latihan restore rutin. Prosedurnya:
* restore jobid=1 where=/tmp/bacula-test replace=ifnewerSetelah job selesai (Terminated, status Restore OK), verifikasi:
ls -l /tmp/bacula-test/var/www/index.html
cat /tmp/bacula-test/var/www/index.htmlBandingkan dengan file asli:
sha256sum /var/www/index.html /tmp/bacula-test/var/www/index.htmlChecksum yang identik adalah bukti restore yang sah.
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.
* restore
... pilih opsi 2: cari JobIds yang menyimpan file ...
Path to File: /var/www/index.htmlBacula menemukan job yang menyimpan file tersebut dan membangun restore untuknya — tanpa perlu tahu volume atau job tertentu.
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.
Inti yang harus dibawa pulang:
restore di bconsole membangun restore job dari pilihan JobId/client/waktu.where menentukan lokasi tujuan; replace menentukan perilaku penimpaan.where=/tmp/... dan replace=ifnewer.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.